在 Azure 容器應用程式中建置 Java 的環境變數 (預覽)
Azure 容器應用程式使用 Buildpacks (英文) 自動建立容器映像,讓您可以直接從原始程式碼部署至雲端。 若要控制組建組態,您可以使用環境變數來自訂組建的組成,例如 JDK、Maven 和 Tomcat。 下列文章說明如何設定環境變數,以協助您控制自動建立容器的組建。
支援的 Java 組建環境變數
設定 JDK
容器應用程式使用 Microsoft Build of OpenJDK (英文) 來組建原始程式碼並作為執行階段環境。 支援四個 LTS JDK 版本:8、11、17 和 21。
針對原始程式碼組建,預設版本為 JDK 17。
針對 JAR 檔案組建,會從 JAR 中的檔案位置
META-INF\MANIFEST.MF
讀取 JDK 版本,但如果指定的版本無法使用,則會使用預設 JDK 第 17 版。
以下是用來設定 JDK 的環境變數清單:
環境變數 | 描述 | 預設 |
---|---|---|
BP_JVM_VERSION |
控制 JVM 版本。 | 17 |
設定 Maven
容器應用程式支援從來源組建 Maven 型應用程式。
以下是用來設定 Maven 的環境變數清單:
組建環境變數 | 描述 | 預設 |
---|---|---|
BP_MAVEN_VERSION |
設定主要的 Maven 版本。 由於 Buildpack 只會提供每個支援系列的單一版本,因此 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 的額外引數 (例如,-DskipJavadoc 附加至 BP_MAVEN_BUILD_ARGUMENTS 的後面)。 |
|
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 |
觸發 Apache maven-mvnd 的安裝和設定,而不是 Maven。 如果您要使用 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.lock 檔案,這會要求您安裝 Yarn 和 Node.js。 如果有 package.json 檔案,則組建只需要 Node.js。 |
false |
BP_NODE_PROJECT_PATH |
引導專案子目錄尋找 package.json 和 yarn.lock 檔案。 |
設定 Tomcat
容器應用程式支援在 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.* |
設定雲端組建服務
以下是用來設定雲端組建服務的環境變數清單:
組建環境變數 | 描述 | 預設 |
---|---|---|
ORYX_DISABLE_TELEMETRY |
控制是否要停用遙測集合。 | false |
如何設定 Java 組建環境變數
注意
若要執行下列 CLI 命令,請使用容器應用程式延伸模組版本 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 容器應用程式中使用 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>
下一步
從存放庫組建和部署 (部分機器翻譯)