Paketo Buildpacks를 사용하여 애플리케이션 컨테이너화
참고 항목
기본, 표준 및 엔터프라이즈 계획은 2025년 3월 중순부터 사용되지 않으며 3년의 은퇴 기간이 있습니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 사용 중지 공지 사항을 참조하세요.
표준 소비 및 전용 계획은 2024년 9월 30일부터 사용되지 않으며 6개월 후에 완전히 종료됩니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 표준 사용량 및 전용 계획을 Azure Container Apps로 마이그레이션을 참조 하세요.
이 문서는 기본/표준 ✅ 엔터프라이즈에✅ 적용됩니다.
이 문서에서는 Paketo Buildpacks를 사용하여 컨테이너 이미지를 빌드하는 방법을 설명합니다.
Azure Spring Apps 서비스는 Dockerfiles를 사용하지 않고 소스 코드에서 이미지를 빌드할 수 있습니다. Java 애플리케이션으로 제한되지는 않지만 다른 프로그래밍 언어 및 정적 웹 콘텐츠로 확장됩니다. 표준 계획에서 서비스는 오픈 소스 Paketo Buildpacks를 사용하고 엔터프라이즈 계획에서는 VMware Tanzu Buildpacks를 사용합니다. Tanzu Buildpacks를 사용할 수 없거나 Paketo를 사용하기 위한 온라인 서비스가 없는 경우 로컬 Paketo Buildpacks로 전환하여 이미지를 빌드할 수 있습니다. 그런 다음 Azure Container Registry 또는 다른 Docker 레지스트리에 배포합니다.
이 문서에서는 TOML 파일을 사용하여 작성기를 만든 다음, 작성기를 사용하여 소스 코드 또는 아티팩트 파일을 빌드하는 방법을 보여 줍니다. 자세한 내용은 builder.toml을 참조 하세요. 빌드 이미지, 실행 이미지 및 스택을 이해하려면 기본 이미지란?을 참조 하세요.
필수 조건
표준 플랜
Azure Spring Apps Standard 계획에는 사용자 지정할 수 없는 기본 제공 빌더가 함께 제공됩니다. 표준 계획을 사용하는 경우 다음 콘텐츠가 포함된 standard-builder.toml이라는 TOML 파일을 만들어야 합니다. 이 파일을 사용하면 Azure Spring Apps Standard 계획에서 사용할 수 있는 것과 동일한 작성기를 만들 수 있습니다.
# filename: standard-builder.toml
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/java-azure:12.0.0"
id = "paketo-buildpacks/java-azure"
[[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/java-azure"
[[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>
엔터프라이즈 계획
Azure Spring Apps Enterprise 계획은 VMware Tanzu Buildpacks를 사용하여 컨테이너 이미지에 소스 코드를 빌드합니다. Tanzu Buildpacks는 오픈 소스 파케토 빌드팩을 기반으로 합니다. 따라서 Tanzu와 정확히 동등한 파케토 빌드팩을 찾는 것은 불가능할 것입니다.
이 섹션에서는 Enterprise 계획의 Paketo Buildpack과 가깝지만 정확히 동일하지 않은 빌드를 사용하여 작성기를 만드는 방법을 확인할 수 있습니다. 테스트를 실행하거나 빌드 팩을 조사하여 엔터프라이즈 계획에서 빌드의 호환성을 확인하고 로컬 컴퓨터에서 사용자 고유의 작성기를 확인해야 합니다.
Enterprise 계획에는 다음 구성 요소로 구성된 기본 작성기도 함께 제공됩니다.
- OS 스택: io.buildpacks.stacks.jammy-base
- 빌드팩:
- tanzu-buildpacks/java-azure
- tanzu-buildpacks/dotnet-core
- tanzu-buildpacks/go
- tanzu-buildpacks/web-servers
- tanzu-buildpacks/nodejs
- tanzu-buildpacks/python
팩 CLI를 사용하여 로컬 머신에서 Paketo OS 스택 및 Paketo Buildpacks를 사용하여 유사한 작성기를 만들 수 있습니다. 그런 다음 새로 만든 이 작성기를 사용하여 애플리케이션 소스 코드를 빌드할 수 있습니다.
기본값이 아닌 다른 작성기를 사용하는 경우 OS 스택 및 빌드팩과 같은 구성을 확인한 다음 이와 유사한 Paketo 작성기를 만들어야 합니다. 작성기 구성을 확인하려면 Azure Portal로 이동하여 Azure Spring Apps 인스턴스를 찾은 다음, 빌드 서비스 창을 봅니다. 작성기를 찾은 다음 작성기 편집을 선택합니다. 또는 Azure CLI 명령을 az spring build-service builder show
사용할 수 있습니다.
다음 표에서는 Enterprise 계획에 사용되는 OS 스택에 해당하는 Paketo OS 스택을 보여 줍니다.
엔터프라이즈 계획의 OS 스택 | Paketo OS 스택 |
---|---|
io.buildpacks.stacks.jammy-base |
paketobuildpacks/jammy-base-stack 빌드: paketobuildpacks/build-jammy-base paketobuildpacks/run-jammy-base 를 실행합니다. |
io.buildpacks.stacks.jammy-full |
paketobuildpacks/jammy-full-stack 빌드: paketobuildpacks/build-jammy-full paketobuildpacks/run-jammy-full 를 실행합니다. |
io.buildpacks.stacks.jammy-tiny |
paketobuildpacks/jammy-tiny-stack 빌드: paketobuildpacks/build-jammy-tiny paketobuildpacks/run-jammy-tiny 를 실행합니다. |
io.buildpacks.stacks.bionic-base (End of support) |
paketobuildpacks/bionic-base-stack 빌드: paketobuildpacks/build-bionic-base paketobuildpacks/run-bionic-base 를 실행합니다. |
io.buildpacks.stacks.bionic-full (End of support) |
paketobuildpacks/bionic-full-stack 빌드: paketobuildpacks/build-bionic-full paketobuildpacks/run-bionic-full 를 실행합니다. |
다음 표에서는 Enterprise 계획에 사용된 빌드팩에 해당하는 Paketo Buildpack을 보여 줍니다.
Enterprise 계획의 Buildpack | 파케토 빌드팩 |
---|---|
tanzu-buildpacks/dotnet-core |
paketo-buildpacks/dotnet-core |
tanzu-buildpacks/go |
paketo-buildpacks/go |
tanzu-buildpacks/java-azure |
paketo-buildpacks/java-azure |
tanzu-buildpacks/java-native-image |
paketo-buildpacks/java-native-image |
tanzu-buildpacks/nodejs |
paketo-buildpacks/nodejs |
tanzu-buildpacks/php |
paketo-buildpacks/php |
tanzu-buildpacks/python |
paketo-buildpacks/python |
tanzu-buildpacks/web-servers |
paketo-buildpacks/web-servers |
Enterprise 계획의 기본 작성기를 예로 들어 봅니다. enterprise-builder.toml이라는 다음 TOML 파일을 사용하여 로컬 머신에서 유사한 작성기를 만들 수 있습니다.
# filename: enterprise-builder.toml
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/java-azure:latest"
id = "paketo-buildpacks/java-azure"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/dotnet-core:latest"
id = "paketo-buildpacks/dotnet-core"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/go:latest"
id = "paketo-buildpacks/go"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/web-servers:latest"
id = "paketo-buildpacks/web-servers"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/nodejs:latest"
id = "paketo-buildpacks/nodejs"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/python:latest"
id = "paketo-buildpacks/python"
[[order]]
[[order.group]]
id = "paketo-buildpacks/java-azure"
[[order]]
[[order.group]]
id = "paketo-buildpacks/dotnet-core"
[[order]]
[[order.group]]
id = "paketo-buildpacks/go"
[[order]]
[[order.group]]
id = "paketo-buildpacks/web-servers"
[[order]]
[[order.group]]
id = "paketo-buildpacks/nodejs"
[[order]]
[[order.group]]
id = "paketo-buildpacks/python"
[build]
image = "paketobuildpacks/build-jammy-base:latest"
[run]
[[run.images]]
image = "paketobuildpacks/run-jammy-base:latest"
이 TOML 파일을 사용하여 빌드를 만들려면 다음 명령을 사용합니다.
pack builder create <builder-name> --config ./enterprise-builder.toml
다음 명령을 사용하여 작성기를 검사할 수 있습니다.
pack builder inspect <builder-name>
이제 Azure Spring Apps Enterprise 계획의 기본 작성기와 유사한 작성기를 사용할 수 있습니다. 이 작성기를 사용하면 다음 명령을 사용하여 JAR 파일, WAR 파일, Java 소스 코드, .NET 소스 코드, Golang 소스 코드, NodeJS 소스 코드 또는 Python 소스 코드를 컨테이너 이미지에 빌드할 수 있습니다.
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을 추가 또는 제거한 다음 기존 작성기를 업데이트하거나 새 작성기를 만들어 enterprise-builder.toml을 사용자 지정할 수도 있습니다.
사용자 지정
Buildpack은 다양한 구성을 사용자 지정하는 방법을 제공합니다. 다음 예제에서는 특정 요구 사항을 사용하여 컨테이너 이미지를 빌드하기 위한 일반적인 시나리오를 보여 줍니다.
- Java 소스 코드용 JDK를 사용자 지정하려면 paketo-buildpacks/microsoft-openjdk를 참조하세요.
- WAR용 Tomcat을 사용자 지정하려면 paketo-buildpacks/apache-tomcat을 참조하세요.
- 빌드 및 런타임 시 시스템 신뢰 저장소에 CA 인증서를 추가하려면 paketo-buildpacks/ca-certificates를 참조 하세요.
속성 및 구성에 대한 자세한 내용은 Paketo Buildpack 및 Java Buildpack 참조를 사용하여 Java 앱을 빌드하는 방법을 참조하세요.