共用方式為


在 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.jsonyarn.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 upaz containerapp createaz 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>

下一步

從存放庫組建和部署 (部分機器翻譯)