Azure Container Apps에서 Java용 환경 변수 빌드(미리 보기)
Azure Container Apps는 빌드팩을 사용하여 소스 코드에서 클라우드로 직접 배포할 수 있는 컨테이너 이미지를 자동으로 만듭니다. 빌드 구성을 제어하려면 환경 변수를 사용하여 JDK, Maven, Tomcat과 같은 빌드 부분을 사용자 지정할 수 있습니다. 다음 문서에서는 컨테이너를 자동으로 만드는 빌드를 제어하는 데 도움이 되는 환경 변수를 구성하는 방법을 보여 줍니다.
지원되는 Java 빌드 환경 변수
JDK 구성
Container Apps는 OpenJDK의 Microsoft 빌드를 사용하여 소스 코드를 빌드하고 런타임 환경으로 사용합니다. 4가지 LTS JDK 버전(8, 11, 17, 21)이 지원됩니다.
소스 코드 빌드의 경우 기본 버전은 JDK 17입니다.
JAR 파일 빌드의 경우 JDK 버전은 JAR의 파일 위치
META-INF\MANIFEST.MF
에서 읽히지만 지정된 버전을 사용할 수 없는 경우 기본 JDK 버전 17을 사용합니다.
JDK를 구성하는 데 사용되는 환경 변수 목록은 다음과 같습니다.
환경 변수 | 설명 | 기본값 |
---|---|---|
BP_JVM_VERSION |
JVM 버전을 제어합니다. | 17 |
Maven 구성
Container Apps는 원본에서 Maven 기반 애플리케이션 빌드를 지원합니다.
다음은 Maven을 구성하는 데 사용되는 환경 변수 목록입니다.
빌드 환경 변수 | 설명 | 기본값 |
---|---|---|
BP_MAVEN_VERSION |
주요 Maven 버전을 설정합니다. Buildpack은 지원되는 각 라인의 단일 버전만 제공하므로 빌드팩 업데이트로 설치된 Maven의 정확한 버전이 변경될 수 있습니다. Maven의 특정 부/패치 버전이 필요한 경우 대신 Maven 래퍼를 사용합니다. | 3 |
BP_MAVEN_BUILD_ARGUMENTS |
Maven에 전달되는 인수를 정의합니다. TTY가 없는 환경에서는 --batch-mode 가 인수 목록 앞에 추가됩니다. |
-Dmaven.test.skip=true --no-transfer-progress package |
BP_MAVEN_ADDITIONAL_BUILD_ARGUMENTS |
Maven에 전달하기 위해 사용되는 추가 인수(예: BP_MAVEN_BUILD_ARGUMENTS 에 추가된 -DskipJavadoc )를 정의합니다. |
|
BP_MAVEN_ACTIVE_PROFILES |
Maven에 전달된 활성 프로필의 쉼표로 구분된 목록입니다. | |
BP_MAVEN_BUILT_MODULE |
모듈이 포함된 애플리케이션 아티팩트를 지정합니다. 기본적으로 빌드는 루트 모듈을 찾습니다. | |
BP_MAVEN_BUILT_ARTIFACT |
빌드된 애플리케이션 아티팩트의 위치입니다. 이 값은 BP_MAVEN_BUILT_MODULE 변수를 우선합니다. 하나 이상의 공백으로 구분된 패턴을 통해 단일 파일, 여러 파일 또는 디렉터리를 일치시킬 수 있습니다. |
target/*.[ejw]ar |
BP_MAVEN_POM_FILE |
프로젝트의 pom.xml 파일에 대한 사용자 지정 위치를 지정합니다. 이 값은 프로젝트 루트를 기준으로 합니다(예: /workspace). | pom.xml |
BP_MAVEN_DAEMON_ENABLED |
Maven 대신 Apache maven-mvnd 의 설치 및 구성을 트리거합니다. Maven 디먼을 사용하려면 이 값을 true 로 설정합니다. |
false |
BP_MAVEN_SETTINGS_PATH |
Maven의 settings.xml 파일에 대한 사용자 지정 위치를 지정합니다. | |
BP_INCLUDE_FILES |
원본 파일과 일치하도록 콜론으로 구분된 GLOB 패턴 목록입니다. 일치하는 모든 파일은 최종 이미지에 보존됩니다. | |
BP_EXCLUDE_FILES |
원본 파일과 일치하도록 콜론으로 구분된 GLOB 패턴 목록입니다. 일치하는 파일은 최종 이미지에서 제거됩니다. 모든 포함 패턴이 먼저 적용되며 "제외 패턴"을 사용하여 빌드에 포함된 파일을 줄일 수 있습니다. | |
BP_JAVA_INSTALL_NODE |
별도의 Buildpack이 Yarn 및 Node.js를 설치할지 여부를 제어합니다. true 로 설정한 경우 Buildpack은 BP_NODE_PROJECT_PATH 에서 설정한 앱 루트 또는 경로를 확인합니다. 프로젝트 경로는 Yarn 및 Node.js 설치가 필요한 yarn.lock 파일을 찾습니다. package.json 파일이 있는 경우 빌드에는 Node.js만 필요합니다. |
false |
BP_NODE_PROJECT_PATH |
프로젝트 하위 디렉터리에 package.json 및 yarn.lock 파일을 찾도록 지시합니다. |
Tomcat 구성
Container Apps는 Tomcat 애플리케이션 서버에서 war 파일 실행을 지원합니다.
Tomcat을 구성하는 데 사용되는 환경 변수 목록은 다음과 같습니다.
빌드 환경 변수 | 설명 | 기본값 |
---|---|---|
BP_TOMCAT_CONTEXT_PATH |
애플리케이션이 탑재되는 컨텍스트 경로. | 기본적으로 비어 있음(ROOT ) |
BP_TOMCAT_EXT_CONF_SHA256 |
외부 구성 패키지의 SHA256 해시. | |
BP_TOMCAT_ENV_PROPERTY_SOURCE_DISABLED |
true 로 설정하면 Buildpack이 org.apache.tomcat.util.digester.EnvironmentPropertySource 를 구성하지 않습니다. 이 구성 옵션은 환경 변수에서 구성을 로드하고 Tomcat 구성 파일에서 참조하는 것을 지원하기 위해 추가되었습니다. |
|
BP_TOMCAT_EXT_CONF_STRIP |
외부 구성 패키지에서 제거할 디렉터리 수준 수. | 0 |
BP_TOMCAT_EXT_CONF_URI |
외부 구성 패키지의 다운로드 URI. | |
BP_TOMCAT_EXT_CONF_VERSION |
외부 구성 패키지의 버전. | |
BP_TOMCAT_VERSION |
특정 Tomcat 버전을 구성하는 데 사용됩니다. 지원되는 Tomcat 버전에는 8, 9 및 10이 포함됩니다. | 9.* |
Cloud Build 서비스 구성
Cloud Build 서비스를 구성하는 데 사용되는 환경 변수 목록은 다음과 같습니다.
빌드 환경 변수 | 설명 | 기본값 |
---|---|---|
ORYX_DISABLE_TELEMETRY |
원격 분석 컬렉션을 사용하지 않도록 설정할지 여부를 제어합니다. | false |
Java 빌드 환경 변수를 구성하는 방법
참고 항목
다음 CLI 명령을 실행하려면 Container Apps 확장 버전 0.3.47
이상을 사용합니다. az extension add --name containerapp --upgrade --allow-preview
명령을 사용하여 최신 버전을 설치하세요.
CLI 명령 az containerapp up
, az containerapp create
또는 az containerapp update
를 통해 Java 애플리케이션 소스 코드를 배포할 때 Java 빌드 환경 변수를 구성할 수 있습니다.
az containerapp up \
--name <CONTAINER_APP_NAME> \
--source <SOURCE_DIRECTORY> \
--build-env-vars <NAME=VALUE NAME=VALUE> \
--resource-group <RESOURCE_GROUP_NAME> \
--environment <ENVIRONMENT_NAME>
build-env-vars
인수는 빌드용 환경 변수 목록이며 key=value
형식의 공백으로 구분된 값입니다. 다음은 변수로 전달할 수 있는 목록의 예입니다.
BP_JVM_VERSION=21 BP_MAVEN_VERSION=4 "BP_MAVEN_BUILD_ARGUMENTS=-Dmaven.test.skip=true --no-transfer-progress package"
Azure Container Apps에서 Azure CLI를 사용하여 GitHub Actions를 설정할 때 Java 빌드 환경 변수를 구성할 수도 있습니다.
az containerapp github-action add \
--repo-url "https://github.com/<OWNER>/<REPOSITORY_NAME>" \
--build-env-vars <NAME=VALUE NAME=VALUE> \
--branch <BRANCH_NAME> \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--registry-url <URL_TO_CONTAINER_REGISTRY> \
--registry-username <REGISTRY_USER_NAME> \
--registry-password <REGISTRY_PASSWORD> \
--service-principal-client-id <appId> \
--service-principal-client-secret <password> \
--service-principal-tenant-id <tenant> \
--token <YOUR_GITHUB_PERSONAL_ACCESS_TOKEN>