Cloud Native Buildpacks

可以直接通过 Maven 或 Gradle 插件,利用 Cloud Native Buildpacks 构建 Docker 镜像。 如果你曾使用过 Cloud Foundry 或 Heroku 等应用平台,那么你很可能已经用过 buildpack。 Buildpack 是平台中负责将你的应用转换为平台可实际运行内容的部分。 例如,Cloud Foundry 的 Java buildpack 会检测你推送的是 .jar 文件,并自动添加合适的 JRE。

借助 Cloud Native Buildpacks,你可以创建可在任意环境运行的 Docker 兼容镜像。 Spring Boot 对 Maven 和 Gradle 都内置了 buildpack 支持。 这意味着你只需一条命令,就能快速将合理的镜像加载到本地 Docker 守护进程。

关于如何在 MavenGradle 中使用 buildpacks,请参见各自插件文档。

Paketo Spring Boot buildpack 支持 layers.idx 文件,因此对其应用的任何 分层自定义 都会反映到 buildpacks 创建的镜像中。
为实现可复现构建和容器镜像缓存,buildpacks 可能会操作应用资源元数据(如文件“最后修改”信息)。 你应确保应用运行时不依赖这些元数据。 Spring Boot 在提供静态资源时可利用这些信息,但可通过 spring.web.resources.cache.use-last-modified 禁用。