作者:tiandizhiguai
出处:https://goo.gs/596ej
随着高版本的 Kubernetes 弃用 Docker,企业也可以不依赖 Docker 环境了,但是 DevOps 通过 Kubernetes 部署的话,仍然需要制作镜像,那么在没有 Docker 环境的情况下如何制作呢?推荐一款谷歌的开源工具 Jib,github 地址:
https://github.com/GoogleContainerTools/jib
它是一个无需 Docker 守护进程,也无需深入掌握 Docker 最佳实践的情况下,为 Java 应用程序构建 Docker 和 OCI 镜像, 它可以作为 Maven 和 Gradle 的插件,也可以作为 Java 库。
比如,使用 jib-maven-plugin 插件构建镜像的代码如下:
然后使用命令进行构建:
可以看出,无需 docker 环境就可以实现镜像的构建。但是,要想通过平台类型的系统去为每个系统构建镜像,显然通过插件的方式,不太合适,因为需要每个被构建系统引入 jib-maven-plugin 插件才行,也就是需要改造每一个系统,这样就会带来一定的麻烦。那么有没有不需要改造系统的方式直接进行构建镜像呢?答案是通过 Jib-core 就可以实现。
首先,在使用 Jib-core 的项目中引入依赖,maven 如下:
下面通过 DHorse 的代码:
https://github.com/tiandizhiguai/dhorse
看 Jib-core 是如何使用的,如下:
其中,targetFiles 是要构建镜像的目标文件,比如 springboot 打包后的 jar 文件。
通过 Jib-core,可以很轻松的实现镜像构建,而不需要依赖任何其他环境,也不需要被构建系统做任何改造,非常方便。
如果你的项目有此需求,也可以通过 Jib-core 来实现。
可以通过 DHorse 了解更多:
https://github.com/tiandizhiguai/dhorse
领取专属 10元无门槛券
私享最新 技术干货