この記事では、Web アプリケーション アーカイブ (WAR) ファイルまたは Java Archive (JAR) ファイルを使用して、Spring PetClinic サンプル アプリケーションを Azure Container Apps にデプロイする方法について説明します。
Java アプリケーションをデプロイするには、次のオプションを含め、いくつかのオプションが使用可能です。
- ローカル ファイル システムからのまたはコード リポジトリからのデプロイ。
- Maven または IDE を使用したデプロイ。
- WAR ファイル、JAR ファイル、または直接ソース コードを使用したデプロイ。
このチュートリアルを終えるまでに、Azure portal を使用して管理できる Web アプリケーションをデプロイします。 次のスクリーンショットは、Azure Container Apps にデプロイされた PetClinic アプリケーションのホーム ページを示しています。
前提条件
- Azure サブスクリプション。 無料で作成できます。
- Azure サブスクリプションに対する
Contributor
またはOwner
のアクセス許可。 詳細については、Azure portal を使用して Azure ロールを割り当てる方法に関するページを参照してください。 - GitHub アカウント。
- Git
- Azure CLI
- Azure Container Apps CLI 拡張機能、バージョン 0.3.47 以上。 最新バージョンをインストールするには、次のコマンドを使用します:
az extension add --name containerapp --upgrade --allow-preview
- Java Development Kit、バージョン 17 以降。
- Apache Maven
プロジェクトをビルドする
次の手順を使用してプロジェクトをビルドします。
次のコマンドを使って、Azure Container Apps Java Samples リポジトリをクローンします。
git clone https://github.com/Azure-Samples/azure-container-apps-java-samples.git
次のコマンドを使用して 、Spring PetClinic サンプル アプリケーション リポジトリを複製します。
git clone https://github.com/spring-petclinic/spring-framework-petclinic.git
次のコマンドを使って、spring-petclinic フォルダーに移動します。
cd azure-container-apps-java-samples/spring-petclinic/spring-petclinic/
次のコマンドを使用して、 Spring PetClinic サンプル アプリケーション リポジトリを初期化し、最新バージョンに更新します。
git submodule update --init --recursive
次のコマンドを使用して、Maven ビルド領域のクリーンアップ、プロジェクトのコードのコンパイル、JAR ファイルの作成を行い、これらのプロセス中にすべてのテストをスキップします。
mvn clean verify
これで、/target/petclinic.jar ファイルが作成されました。
次のコマンドを使用して 、spring-framework-petclinic フォルダーに移動します。
cd spring-framework-petclinic
次のコマンドを使用して、Maven ビルド領域のクリーンアップ、プロジェクトのコードのコンパイル、JAR ファイルの作成を行い、これらのプロセス中にすべてのテストをスキップします。
mvn clean verify
これで、/target/petclinic.war ファイルが作成されました。
プロジェクトをデプロイする
次のコマンドを使用して、JAR パッケージを Azure Container Apps にデプロイします。
注
既定の JDK バージョンは 17 です。 環境変数を使用してバージョンを指定することもできます。 アプリケーションとの互換性のために JDK のバージョンを変更するには、 --build-env-vars BP_JVM_VERSION=<your-JDK-version>
引数を使用します。 詳細については、「 Azure Container Apps での Java の環境変数のビルド (プレビュー)」を参照してください。
az containerapp up \
--resource-group <resource-group> \
--name <container-app-name> \
--subscription <subscription-ID>\
--___location <___location> \
--environment <environment-name> \
--artifact <JAR-file-path-and-name> \
--ingress external \
--target-port 8080 \
--query properties.configuration.ingress.fqdn
次のコマンドを使用して、WAR ファイルを Azure Container Apps にデプロイします。
注
既定の Tomcat バージョンは 9 です。 アプリケーションとの互換性のためにバージョンを変更するには、 --build-env-vars BP_TOMCAT_VERSION=<your-Tomcat-version>
引数を使用します。 この例では、 BP_TOMCAT_VERSION=10.*
を設定することで、Tomcat のバージョンが 10 (マイナー バージョンを含む) に設定されています。 詳細については、「 Azure Container Apps での Java の環境変数のビルド (プレビュー)」を参照してください。
az containerapp up \
--resource-group <resource-group> \
--name <container-app-name> \
--subscription <subscription>\
--___location <___location> \
--environment <environment-name> \
--artifact <WAR-file-path-and-name> \
--build-env-vars BP_TOMCAT_VERSION=10.* \
--ingress external \
--target-port 8080 \
--query properties.configuration.ingress.fqdn
アプリの状態を確認する
この例では、containerapp up
コマンドに --query properties.configuration.ingress.fqdn
引数が含まれており、完全修飾ドメイン名 (FQDN) (アプリの URL とも呼ばれます) が返されます。
この URL をブラウザーに貼り付けて、アプリケーションを表示します。
リソースをクリーンアップする
その他のクイックスタートおよびチュートリアルの作業を続ける場合は、これらのリソースをそのままにしておいてかまいません。 リソースが不要になったら、次のコマンドを使用してそれらを削除し、Azure の料金がかからないようにすることができます。
az group delete --name <resource-group>