备注
基本标准计划于 2025 年 3 月 17 日进入退休期。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
标准消耗和专用计划于 2024 年 9 月 30 日进入停用期,并将在 2025 年 3 月底之前完全关闭。
本文适用于:✅ 基本/标准
本文介绍如何使用 Paketo Buildpacks 生成容器映像。
Azure Spring Apps 服务支持从源代码生成映像,而无需使用 Dockerfile。 它不限于 Java 应用程序,而是扩展到了其他编程语言,甚至静态 Web 内容。 在标准计划中,该服务使用开源 的 Paketo Buildpacks。 如果没有使用 Paketo 的在线服务,可以切换到本地 Paketo Buildpacks 来生成镜像。 然后将其部署到 Azure 容器注册表或其他 Docker 注册表。
本文介绍如何使用 TOML 文件创建生成器,然后使用生成器生成源代码或项目文件。 有关详细信息,请参阅 builder.toml。 若要了解生成映像、运行映像和堆栈,请参阅什么是基础映像。
备注
本文以前建议使用已停止使用的 Paketo Java Azure 复合生成包。 我们更新了示例,以使用复合生成包的必要单个组件。 有关复合生成包中包含的所有单个组件的列表,请参阅 buildpack.toml。 有关复合生成包的停用的详细信息,请参阅 Paketo Buildpacks Sunsets Java Azure Composite Buildpack。
Azure Spring Apps 标准计划附带了一个内置生成器,无法对其进行自定义。 若要替换此生成器,需要为自己的生成器创建 TOML 文件。 以下 TOML 文件是一个示例,可以自定义以使用 Application Insights 生成 Java Spring Boot 应用。 根据应用的要求调整 TOML 文件。
# filename: standard-builder.toml
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/ca-certificates:3.9.0"
id = "paketo-buildpacks/ca-certificates"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/microsoft-openjdk:4.0.1"
id = "paketo-buildpacks/microsoft-openjdk"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/syft:2.6.1"
id = "paketo-buildpacks/syft"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/maven:6.19.2"
id = "paketo-buildpacks/maven"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/executable-jar:6.12.0"
id = "paketo-buildpacks/executable-jar"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/spring-boot:5.32.0"
id = "paketo-buildpacks/spring-boot"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/azure-application-insights:5.23.0"
id = "paketo-buildpacks/azure-application-insights"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/environment-variables:4.8.0"
id = "paketo-buildpacks/environment-variables"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/java-native-image:9.8.0"
id = "paketo-buildpacks/java-native-image"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/dotnet-core:0.48.3"
id = "paketo-buildpacks/dotnet-core"
[[order]]
[[order.group]]
id = "paketo-buildpacks/ca-certificates"
optional = true
version = "3.9.0"
[[order.group]]
id = "paketo-buildpacks/microsoft-openjdk"
version = "4.0.1"
[[order.group]]
id = "paketo-buildpacks/syft"
optional = true
version = "2.6.1"
[[order.group]]
id = "paketo-buildpacks/maven"
optional = true
version = "6.19.2"
[[order.group]]
id = "paketo-buildpacks/executable-jar"
optional = true
version = "6.12.0"
[[order.group]]
id = "paketo-buildpacks/spring-boot"
optional = true
version = "5.32.0"
[[order.group]]
id = "paketo-buildpacks/azure-application-insights"
optional = true
version = "5.23.0"
[[order.group]]
id = "paketo-buildpacks/environment-variables"
optional = true
version = "4.8.0"
[[order]]
[[order.group]]
id = "paketo-buildpacks/java-native-image"
[[order]]
[[order.group]]
id = "paketo-buildpacks/dotnet-core"
[build]
image = "paketobuildpacks/build-jammy-base:0.1.129"
[run]
[[run.images]]
image = "paketobuildpacks/run-jammy-base:0.1.129"
若要使用此 TOML 文件创建生成器,请使用以下命令:
pack builder create <builder-name> --config ./standard-builder.toml
可以使用以下命令检查生成器:
pack builder inspect <builder-name>
若要使用此生成器将 Java 源代码或 .NET 源代码生成到容器映像,请使用以下命令:
pack build <image-name> \
--path <path-to-source-root> \
--builder <builder-name>
若要使用生成器将项目(如 JAR 或 WAR 文件)生成到容器映像,请使用以下命令:
pack build <image-name> \
--path <path-to-artifact> \
--builder <builder-name>
Buildpack 提供了自定义各种配置的方法。 以下示例演示了生成具有特定要求的容器映像的常见方案:
- 若要自定义适用于 Java 的 JDK 源代码,请参阅 paketo-buildpacks/microsoft-openjdk。
- 若要自定义适用于 WAR 的 Tomcat,请参阅 paketo-buildpacks/apache-tomcat。
- 若要在生成和运行时将 CA 证书添加到系统信任存储,请参阅 paketo-buildpacks/ca-certificates。
有关属性和配置的详细信息,请参阅如何使用 Paketo Buildpacks 生成 Java 应用和 Java Buildpack 参考。