Spring Boot 2.3 引入了对使用 Spring Boot maven/gradle 插件构建优化的 Docker 映像的支持。目标做了spring-boot:build-image
很多事情:
- 创建图层索引
- 调用 Paketo buildpack
- 构建 OCI 映像
- 等等
有没有办法使用较旧的 Spring Boot 版本为模块复制这些步骤?更好的是,这些步骤可以直接集成到 maven/gradle 构建中吗?
Spring Boot 2.3 引入了对使用 Spring Boot maven/gradle 插件构建优化的 Docker 映像的支持。目标做了spring-boot:build-image
很多事情:
有没有办法使用较旧的 Spring Boot 版本为模块复制这些步骤?更好的是,这些步骤可以直接集成到 maven/gradle 构建中吗?
由于Spring Boot 2.3 中引入了分层 jars 功能(包括layers.idx
文件生成和 spring-boot-maven-plugin 对 Cloud Native Buildpacks / Paketo.io 的支持) ,我想说你不能用标准工具真正降级它。
但我想您可以尝试自己生成layers.idx
文件 - 甚至选择默认文件,因为您的应用程序的布局毕竟可能不会发生太大变化。一个例子是(不使用SNAPSHOT
依赖项):
- "dependencies":
- "BOOT-INF/lib/"
- "spring-boot-loader":
- "org/"
- "snapshot-dependencies":
- "application":
- "BOOT-INF/classes/"
- "BOOT-INF/classpath.idx"
- "BOOT-INF/layers.idx"
- "META-INF/"
有了这个文件(意味着把它放在你的target
文件夹中(也许你可以用一个简单的 Maven 插件自动化它)),pack CLI 应该能够选择它。因此,安装 pack CLI并运行 Paketo 构建,而无需spring-boot-maven-plugin
像这样使用自己:
pack build yourAppNameHere --path . --builder paketobuildpacks/builder:base
我自己并没有真正尝试过这种方法 - 如果旧 Spring Boot 版本中的目录结构有很大不同,也许你会遇到问题。但我希望能听到一些反馈!