利用Google开源Java容器化工具Jib构建镜像

转载:https://blog.csdn.net/u012562943/article/details/80995373git

1、前言github

容器的出现让Java开发人员比以往任什么时候候都更接近“编写一次,处处运行”的工做流程,但要对Java应用程序进行容器化并不是易事:你必须编写Dockerfile,以root身份运行Docker守护进程,等待构建完成,最后将镜像推送到远程注册中心。但并不是全部的Java开发人员都是容器专家,像之前那样只须要构建一个JAR包的日子已经结束了吗?为了应对这一挑战,谷歌开源了一个Java容器化工具Jib,有了这个工具,Java开发人员可使用他们熟悉的Java工具来构建容器。Jib是一个快速而简单的容器镜像构建工具,它负责处理将应用程序打包到容器镜像中所需的全部步骤。它不须要你编写Dockerfile或安装Docker,并且能够直接集成到Maven中,只须要将插件添加到构建中,就能够当即将 Java应用程序容器化。docker

2、Docker构建流程:缓存

3、Jib构建流程:maven

4、Jib如何让开发变得更美好
Jib利用了Docker镜像的分层机制,将其与构建系统集成,并经过如下方式优化 Java容器镜像的构建
简单——Jib使用Java开发,并做为Maven的一部分运行。你不须要编写Dockerfile或运行Docker守护进程,甚至无需建立包含全部依赖的大JAR包。由于Jib与Java构建过程紧密集成,因此它能够访问到打包应用程序所需的全部信息。在后续的容器构建期间,它将自动选择Java构建过的任何变体。
快速——Jib利用镜像分层和注册表缓存来实现快速、增量的构建。它读取你的构建配置,将你的应用程序组织到不一样的层(依赖项、资源、类)中,并只从新构建和推送发生变动的层。在项目进行快速迭代时,Jib只讲发生变动的层(而不是整个应用程序)推送到注册表来节省宝贵的构建时间。
可重现——Jib支持根据Maven的构建元数据进行声明式的容器镜像构建,所以,只要输入保持不变,就能够经过配置重复建立相同的镜像。
5、如何使用Jib来容器化你的应用程序
Jib可做为Maven的插件使用,而且只须要作出最少的配置。只需将插件添加到构建定义中并配置目标镜像便可。若是要将镜像推送到私有注册中心,要为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
Jib项目地址:github.com/GoogleContainerTools/jib工具

相关文章
相关标签/搜索