原生编译 Java 微服务指南
1. 构建 Docker 镜像
可以使用现有的 Gradle 任务 bootBuildImage 来创建 Docker 镜像。若在构建文件中声明了 GraalVM 的 Gradle 插件,该任务将创建一个包含原生镜像(Native Image)的 Docker 镜像,而非使用 Java VM 和应用的 JAR 文件。原生镜像会在 Docker 容器中构建,适用于 Linux 系统。这也意味着使用 bootBuildImage 任务时,无需安装 GraalVM 的原生镜像编译器。实际上,此任务使用 buildpacks 而非 Dockerfile 来创建 Docker 镜像。
为创建 OCI 镜像,Spring Boot 使用来自 Paketo 项目的 buildpacks。不过,在撰写时 Paketo 的 buildpacks 不支持 arm64(包括 Apple silicon)。基于 amd64(Intel)的 buildpacks 虽能在搭载 Apple silicon 的 MacBook 上运行,但速度极慢。可使用非官方的 arm64 Docker 镜像作为临时解决方案,如 https://hub.docker.com/r/dashaun/builder - arm 提供的镜像。
创建本地操作系统的原生镜像比创建 Docker 镜像更快。因此,在初次尝试成功构建原生镜像时, nativeImage 任务可用于快速反馈。但一旦构建成功,创建包含原生镜像的 Docker 镜像,结合 Docker Compose 或 Kubernetes,是测试原生编译微服
Java 微服务原生编译指南与优势
超级会员免费看
订阅专栏 解锁全文
72

被折叠的 条评论
为什么被折叠?



