为了更方便将 Java 应用程序容器化,Google 于去年推出了 Jib 工具。Jib 是一个快速而简单的容器镜像构建工具,它负责处理将应用程序打包到容器镜像中所需的所有步骤。
Docker 构建流程
Jib 构建流程
Jib 以 Maven 和 Gradle 插件形式提供,可以直接构建 Java 应用的 Docker 和 OCI 镜像的类库。它不需要你编写 Dockerfile 或安装 Docker,而且可以直接集成到 Maven 和 Gradle中 —— 只需要将插件添加到构建中,就可以立即将 Java 应用程序容器化。
从去年发布测试版起,开发团队就收到了社区积极的反馈和贡献。现在, Jib 1.0 GA 终于发布了,这是一个稳定且可用于生产环境的版本。
Jib 1.0 值得关注的新特性 对 WAR 项目容器化(Dockerize WAR)
我们知道 Java 编写的 Web 应用程序通常会被打包成 WAR 文件。如今,Jib 已经能够对 WAR 项目进行容器化,且完全无需额外配置。只需要直接运行以下命令:
Maven:
$ mvn package jib:build
Gradle:
$ gradle jib
该容器的默认应用服务器为 Jetty,但也可以对基础镜像及 appRoot 进行配置调整,从而使用 Tomcat 等其它服务器选项:
Maven (pom.xml):
<configuration>
<from>
<image>tomcat:8.5-jre8-alpine</image>
</from>
<to>
<image>gcr.io/my-project/my-war-image</image>
</to>
<container>
<appRoot>/usr/local/tomcat/webapps/my-webapp</appRoot>
</container>
</configuration>
Gradle (build.gradle):
jib {
from.image = 'tomcat:8.5-jre8-alpine'
to.image = 'gcr.io/my-project/my-war-image'
container.appRoot = '/usr/local/tomcat/webapps/my-webapp'
}
更新说明较多,详情请查看发布公告:
https://cloud.google.com/blog/products/application-development/jib-1-0-0-is-ga-building-java-docker-images-has-never-been-easier