今天看群里说起jib工具,就专门看了一下。地址:https://github.com/GoogleContainerTools/jib。
jib旨在让开发者使用他们熟悉的工具更轻松地将 Java 应用程序容器化。
来看看一般的应用如何容器化
第一步还好说,构建本身由于maven和gradle的存在变得相当便利,如果是spring boot的应用,直接打包jar包,其他的用war插件打包war包就行了。
第二步编写Dockerfile,大部分Dockerfile的内容都是相似的,准备对应的java环境,拷贝jar或者war,然后配置参数,指定启动脚本。
第三步也很直接,直接执行 docker build . - f Dockerfile
那么Google专门开源的这个jib工具能够改善的点在何处呢?
看看Google官方的说明:
第一个优势就是干掉了Dockerfile,第三个优势类似于jar包和war包本身没有明显的版本信息,重现性低。
那么第二个快速应该就是一个主要优势了,之前的Docker打包是以整个jar包或者war包而基础的,那么每个Docker镜像的拉取量就是整个jar包或者war包,而jib的打包是基于层的,具体的步骤还是有点复杂,官网有专门的文档说明,查看下面两个链接:
https://github.com/GoogleContainerTools/distroless
https://cloudplatform.googleblog.com/2018/07/introducing-jib-build-java-docker-images-better.html