curl -G https://start.vertx.io/starter.zip -d "artifactId=layered-container-jib" -d "jdkVersion=11" -d "buildTool=maven" --output layered-container-jib.zip
unzip layered-container-jib.zip
运行时与 JVM 优化
使用 Google Jib 构建高效分层容器镜像
本指南阐述如何使用 Google Jib 为 Vert.x 应用程序构建容器镜像。
与传统的 Dockerfile 构建不同,Jib 可以直接通过构建工具(Maven / Gradle)生成符合 OCI 规范的分层优化镜像,全程无需在本地运行 Docker 守护进程,也无需编写维护复杂的 Dockerfile。
此外,Jib 通过将应用程序清晰解耦为不同的独立层(依赖库层、资源文件层和类代码层),在代码发生变动时仅需重新构建并推送变动的代码层,从而成倍缩短容器构建与推送耗时。
你将构建什么
你将创建一个 Vert.x 应用程序,使用 Jib 插件为其构建分层容器镜像,并使用 Docker 启动运行该镜像。
前置要求
-
文本编辑器或 IDE
-
Java 11 或更高版本
-
Docker 环境(仅用于在本地运行测试生成的镜像)
-
Maven 或 Gradle 构建工具
使用 Maven
生成工程项目
在 start.vertx.io 上配置项目,或直接在终端执行:
构建容器镜像
直接将镜像构建并导入本地 Docker 守护进程:
./mvnw compile jib:dockerBuild
若需要直接构建并推送至远程镜像仓库(无需本地 Docker 守护进程):
./mvnw compile jib:build -Dimage=<my-registry>/<image-name>:<tag>
运行与测试
docker run -d -p 8080:8080 --name vertx-jib-app layered-container-jib
curl http://localhost:8080/
返回:Hello from Vert.x!。
使用 Gradle
对于 Gradle 用户,只需在 build.gradle.kts 中引入 com.google.cloud.tools.jib 插件:
然后执行:
./gradlew jibDockerBuild
总结
本文档展示了:
-
Google Jib 的免 Docker 守护进程分层构建优势;
-
在 Maven 与 Gradle 中无缝集成 Jib 插件;
-
构建毫秒级增量分层镜像并运行验证。