Azure Container Apps で Java 用の環境変数を構築する (プレビュー)
Azure Container Apps は、Buildpack を使って、ソース コードからクラウドに直接デプロイできるコンテナー イメージを自動的に作成します。 ビルド構成を制御するには、環境変数を使って、JDK、Maven、Tomcat などのビルドの一部をカスタマイズします。 次の記事では、コンテナーを自動的に作成するビルドを制御できるように環境変数を構成する方法を示します。
サポートされている Java ビルド環境変数
JDK を構成する
Container Apps は、ソース コードをビルドするために、またランタイム環境として、OpenJDK の Microsoft Build を使います。 4 つの LTS JDK バージョン (8、11、17、21) がサポートされています。
ソース コード ビルドの場合、既定のバージョンは JDK 17 です。
JAR ファイルのビルドの場合、JDK のバージョンは JAR 内のファイルの場所
META-INF\MANIFEST.MF
から読み取られますが、指定されたバージョンを使用できない場合は、既定の JDK バージョン 17 が使われます。
JDK の構成に使われる環境変数の一覧を次に示します。
環境変数 | 説明 | Default |
---|---|---|
BP_JVM_VERSION |
JVM のバージョンを制御します。 | 17 |
Maven の構成
Container Apps は、ソースからの Maven ベースのアプリケーションのビルドをサポートします。
Maven の構成に使われる環境変数の一覧を次に示します。
ビルド環境変数 | 説明 | Default |
---|---|---|
BP_MAVEN_VERSION |
Maven のメジャー バージョンを設定します。 Buildpack は、サポートされている各行の 1 つのバージョンのみをリリースするため、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 変数よりも優先されます。 1 つ以上のスペースで区切られたパターンを使って、1 つのファイル、複数のファイル、またはディレクトリを照合できます。 |
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.lock ファイルを探します。これには Yarn と Node.js のインストールが必要です。 package.json ファイルがある場合、ビルドには Node.js のみが必要です。 |
false |
BP_NODE_PROJECT_PATH |
package.json と yarn.lock ファイルを探すようにプロジェクト サブディレクトリに指示します。 |
Tomcat を構成する
Container Apps は、Tomcat アプリケーション サーバーでの war ファイルの実行をサポートします。
Tomcat の構成に使われる環境変数の一覧を次に示します。
ビルド環境変数 | 説明 | Default |
---|---|---|
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 Service を構成する
Cloud Build Service の構成に使われる環境変数の一覧を次に示します。
ビルド環境変数 | 説明 | Default |
---|---|---|
ORYX_DISABLE_TELEMETRY |
テレメトリ収集を無効にするかどうかを制御します。 | false |
Java ビルド環境変数を構成する方法
Note
以下の 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>