谷歌开源Java镜像构建工具Jib

容器的出现让Java开发人员比以往任何时候都更接近“编写一次,到处运行”的工作流程,但要对Java应用程序进行容器化并非易事:你必须编写Dockerfile,以root身份运行Docker守护进程,等待构建完成,最后将镜像推送到远程注册中心。但并非所有的Java开发人员都是容器专家,像以前那样只需要构建一个JAR包的日子已经结束了吗?

\\

为了应对这一挑战,谷歌开源了一个Java容器化工具Jib,有了这个工具,Java开发人员可以使用他们熟悉的Java工具来构建容器。Jib是一个快速而简单的容器镜像构建工具,它负责处理将应用程序打包到容器镜像中所需的所有步骤。它不需要你编写Dockerfile或安装Docker,而且可以直接集成到Maven和Gradle中——只需要将插件添加到构建中,就可以立即将Java应用程序容器化。

\\

Docker构建流程:

\\

79fbcc99790f80068ec6acaafff5c9d8.png

\\

Jib构建流程:

\\

70b6985d95dd1eec114eab0a4eeb177e.png

\\

Jib如何让开发变得更美好

\\

Jib利用了Docker镜像的分层机制,将其与构建系统集成,并通过以下方式优化Java容器镜像的构建:

\\
  1. 简单——Jib使用Java开发,并作为Maven或Gradle的一部分运行。你不需要编写Dockerfile或运行Docker守护进程,甚至无需创建包含所有依赖的大JAR包。因为Jib与Java构建过程紧密集成,所以它可以访问到打包应用程序所需的所有信息。在后续的容器构建期间,它将自动选择Java构建过的任何变体。\\t
  2. 快速——Jib利用镜像分层和注册表缓存来实现快速、增量的构建。它读取你的构建配置,将你的应用程序组织到不同的层(依赖项、资源、类)中,并只重新构建和推送发生变更的层。在项目进行快速迭代时,Jib只讲发生变更的层(而不是整个应用程序)推送到注册表来节省宝贵的构建时间。\\t
  3. 可重现——Jib支持根据Maven和Gradle的构建元数据进行声明式的容器镜像构建,因此,只要输入保持不变,就可以通过配置重复创建相同的镜像。\

如何使用Jib来容器化你的应用程序

\\

Jib可作为Maven和Gradle的插件使用,并且只需要做出最少的配置。只需将插件添加到构建定义中并配置目标镜像即可。如果要将镜像推送到私有注册中心,要为Jib配置所需的秘钥。最简单的方法是使用docker-credential-gcr之类的凭证助手。Jib还提供了其他的一些规则,用于将镜像构建到Docker守护进程。

\\

在Maven中使用Jib:

\\
\\u0026lt;plugin\u0026gt;\  \u0026lt;groupId\u0026gt;com.google.cloud.tools\u0026lt;/groupId\u0026gt;\  \u0026lt;artifactId\u0026gt;jib-maven-plugin\u0026lt;/artifactId\u0026gt;\  \u0026lt;version\u0026gt;0.9.0\u0026lt;/version\u0026gt;\  \u0026lt;configuration\u0026gt;\    \u0026lt;to\u0026gt;\      \u0026lt;image\u0026gt;gcr.io/my-project/image-built-with-jib\u0026lt;/image\u0026gt;\    \u0026lt;/to\u0026gt;\  \u0026lt;/configuration\u0026gt;\\u0026lt;/plugin\u0026gt;
\\\\
\# Builds to a container image registry.\$ mvn compile jib:build\# Builds to a Docker daemon.\$ mvn compile jib:dockerBuild\
\\

在Gradle中使用Jib:

\\
\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项目地址:github.com/GoogleContainerTools/jib

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值