通过jib工具直接上传到docker容器地址,省去docker file的编写

 

这是一篇来自于google的文章,对于java开发者来说很实用,尤其是容器天下的时代。值得仔细阅读。

容器使Java开发人员比以往任何时候都更接近“一次编写,随处运行”工作流程,但容纳Java应用程序并非易事:您必须编写Dockerfile,以root身份运行Docker守护程序,等待构建完成,以及最后将图像推送到远程注册表。并非所有Java开发人员都是容器专家; 刚建一个JAR怎么了?

为了应对这一挑战,我们很高兴地宣布Jib是一个来自Google的开源Java容器,它允许Java开发人员使用他们所知道的Java工具构建容器。Jib是一个快速而简单的容器映像构建器,它处理将应用程序打包到容器映像中的所有步骤。它不需要您编写Dockerfile或安装docker,它直接集成到Maven和Gradle中 - 只需将插件添加到您的构建中,您就可以立即将Java应用程序容器化。

Docker构建流程:

docker 单节点 ceph docker jitsi_应用程序


Jib构建流程:

docker 单节点 ceph docker jitsi_docker 单节点 ceph_02

Jib如何使开发更好

Jib利用Docker镜像中的分层功能,并与构建系统集成,以通过以下方式优化Java容器映像构建:
简单 - Jib在Java中实现,并作为Maven或Gradle构建的一部分运行。您不需要维护Dockerfile,运行Docker守护程序,甚至无需创建具有所有依赖项的胖JAR。由于Jib与您的Java构建紧密集成,因此它可以访问打包应用程序所需的所有信息。在后续容器构建期间,将自动选择Java构建中的任何变体。
快速 - Jib利用图像分层和注册表缓存来实现快速,增量构建。它读取您的构建配置,将您的应用程序组织到不同的层(依赖项,资源,类)中,并仅重建和推送已更改的层。在项目上快速迭代时,Jib可以通过仅将已更改的层推送到注册表而不是整个应用程序来节省每个构建的宝贵时间。
可重现 - Jib支持从Maven和Gradle构建元数据以声明方式构建容器映像,因此可以配置为只要输入保持不变,就可以创建可重现的构建映像。

如何使用Jib来容纳您的应用程序

Jib可作为Maven和Gradle的插件使用,并且需要最少的配置。只需将插件添加到构建定义中并配置目标映像即可。如果要构建到专用注册表,请确保使用注册表的凭据配置Jib。最简单的方法是使用docker-credential-gcr之类的凭证助手。如果需要,Jib还提供了用于为Docker守护程序构建映像的其他规则。

Maven上的Jib

<plugin>
   <groupId>com.google.cloud.tools</groupId>
   <artifactId>jib-maven-plugin</artifactId>
   <version>0.9.0</version>
   <configuration>
     <to>
       <image>gcr.io/my-project/image-built-with-jib</image>
     </to>
   </configuration>
 </plugin>
  # Builds to a container image registry.
 $ mvn compile jib:build
 # Builds to a Docker daemon.
 $ mvn compile jib:dockerBuild
  plugins {
   id 'com.google.cloud.tools.jib' version '0.9.0'
 }
 jib.to.image = 'gcr.io/my-project/image-built-with-jib'
  # Builds to a container image registry.
 $ gradle jib
 # Builds to a Docker daemon.
 $ gradle jibDockerBuild

我们希望每个人都使用Jib来简化和加速他们的Java开发。Jib与大多数云提供商合作; 尝试一下,让我们知道您对github.com/GoogleContainerTools/jib的看法