Jib快速打包Docker镜像

Jib是Google开发的可以直接构建 Java应用的Docker和OCI镜像的类库,以Maven和Gradle插件形式提供。它最骚操作的是可以在没有Docker守护程序的情况下构建,也就是说,您不必在计算机上安装docker守护程序!尽管Spring Boot 2.3.0.RELEASE已经推出了构建镜像的功能,

Docker构建流程和Jib的构建流程

Docker构建流程先把项目打成Jar然后编写Dockerfile,然后使用Docker构建功能进行构建镜像、运行容器。流程如下:

而Jib是这样构建的:

作为一个Java开发者,不用再关心各种无关的命令和操作,只需要专注于Java,而且高效稳定以及可复用的增量构建。为什么Jib能这么快而高效?

传统上,将Java应用程序与应用程序Jar一起构建为单个图像层,而Jib的构建策略将Java应用程序分为多层,以进行更细化的增量构建。更改代码时,仅重建更改,而不重建整个应用程序。

3. Jib构建Spring Boot应用

以Maven工程为例,我们只需要在

pom.xml

中引入Jib Maven 插件。默认情况下Jib会把我们打好的镜像上传到Google的gcr.io仓库,实际中我们会把打好的镜像上传到私有仓库,所以我们要加一些个性化配置。这里我以dockerhub仓库为例添加一些个性化配置:

<plugin>

<groupId>com.google.cloud.tools</groupId>

<artifactId>jib-maven-plugin</artifactId>

<version>2.4.0</version>

<configuration>

<!-- 相当于 Dockerfile 中的 FROM -->

<from>

<image>amazoncorretto:8</image>

</from>

<to>

<!--构建镜像名称,这里我使用maven中定义的项目名称-->

<image>daxus/${project.name}</image>

<!--私有仓库的账号密码-->

<auth>

<username>felordcn</username>

<password>yourpassword</password>

</auth>

<!--Docker 镜像的 tag 这里使用maven定义的版本号-->

<tags>

<tag>

${project.version}

</tag>

</tags>

</to>

</configuration>

</plugin>

然后在项目根目录执行

mvn clean compile jib:build

就可以了。

其实也可以简单引入Jib插件:

<plugin>

<groupId>com.google.cloud.tools</groupId>

<artifactId>jib-maven-plugin</artifactId>

<version>2.4.0</version>

</plugin>

只不过我们的命令会更复杂一些,需要指定一些必要的参数,例如:

mvn clean compile jib:build \

-Djib.to.image=myregistry/myimage:latest \

-Djib.to.auth.username=$USERNAME \

-Djib.to.auth.password=$PASSWORD

更多的定制命令可参考官方文档:

https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin#extended-usage

4. 总结

Jib使用起来非常简单,让开发人员以Java的风格来完成Docker镜像的构建,能够大大改善编程的体验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

福海鑫森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值