docker导出日志到本地的方法是什么
267
2022-10-22
Jib无痛构建Docker镜像不影响第二天上班
1. 前言
Jib,容器化你的Java应用
Jib是Google开发的可以直接构建 Java应用的Docker和OCI镜像的类库,以Maven和Gradle插件形式提供。它最骚操作的是可以在没有Docker守护程序的情况下构建,也就是说,您不必在计算机上安装docker守护程序!尽管Spring Boot 2.3.0.RELEASE已经推出了构建镜像的功能,胖哥还是忍不住要试试Jib。
其实最骚的还是名字。
2. Docker 构建流程和 Jib 的构建流程
没有对比就没有伤害。我们还是要对比一下这两者的构建流程。
Docker构建流程需要我们先把项目打成Jar然后编写Dockerfile,然后使用Docker构建功能进行构建镜像、运行容器。流程如下:
docker构建流程
而 Jib 是这样构建的:
Jib构建流程
作为一个Java开发者,不用再关心各种无关的命令和操作,只需要专注于 Java,而且高效稳定以及可复用的增量构建。为什么Jib能这么快而高效?
传统上,将Java应用程序与应用程序Jar一起构建为单个图像层,而Jib的构建策略将Java应用程序分为多层,以进行更细化的增量构建。更改代码时,仅重建更改,而不重建整个应用程序。
3. Jib 构建 Spring Boot 应用
接下来我将演示如何将Spring Boot 应用打成镜像并上传到Dockerhub仓库。
以Maven工程为例,我们只需要在pom.xml中引入Jib Maven 插件。默认情况下Jib会把我们打好的镜像上传到Google的gcr.io仓库,实际中我们会把打好的镜像上传到私有仓库,所以我们要加一些个性化配置。这里我以dockerhub仓库为例添加一些个性化配置:
然后在项目根目录执行mvn clean compile jib:build就可以了。
上传到dockerhub中的镜像
其实也可以简单引入Jib插件:
只不过我们的命令会更复杂一些,需要指定一些必要的参数,例如:
mvn clean compile jib:build \ -Djib.to.image=myregistry/myimage:latest \ -Djib.to.auth.username=$USERNAME \ -Djib.to.auth.password=$PASSWORD
更多的定制命令可参考官方文档:总结
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~