クイック スタート: Azure Container Apps で最初の Java アプリケーションを起動する

この記事では、Spring PetClinic サンプル アプリケーションをデプロイして Azure Container Apps で実行する方法について説明します。 Dockerfile を手動で作成してコンテナー レジストリを直接使うのではなく、Java アーカイブ (JAR) ファイルまたは Web アプリケーション アーカイブ (WAR) ファイルから Java アプリケーションを直接デプロイできます。

このチュートリアルの終わりまでに、Azure portal で管理できる Web アプリケーションをデプロイします。

次の図は、Azure にデプロイされたアプリケーションの外観を示すスクリーンショットです。

petclinic アプリのスクリーンショット。

前提条件

要件 手順
Azure アカウント お持ちでない場合は、無料のアカウントを作成してください

続行するには、Azure サブスクリプションの "共同作成者" または "所有者" のアクセス許可が必要です。

詳細については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。
GitHub アカウント 1 つ無料で取得できます。
git git をインストールします
Azure CLI Azure CLI をインストールします。
Container Apps CLI 拡張機能 バージョン 0.3.47 以降を使用します。 az extension add --name containerapp --upgrade --allow-preview コマンドを使用して最新バージョンをインストールします。
Java Java Development Kit をインストールします。 バージョン 17 以降を使ってください。
Maven Maven をインストールします。

プロジェクトを準備する

Spring PetClinic サンプル アプリケーションをマシンに複製します。

git clone https://github.com/spring-projects/spring-petclinic.git
git clone https://github.com/spring-petclinic/spring-framework-petclinic.git

プロジェクトをビルドする

spring-petclinic フォルダーに移動します。

cd spring-petclinic

すべてのテストをスキップしながら、Maven ビルド領域をクリーンし、プロジェクトのコードをコンパイルし、JAR ファイルを作成します。

mvn clean package -DskipTests

ビルド コマンドを実行すると、petclinic.jar というファイルが /target フォルダーに生成されます。

Note

必要に応じて、Java ビルド環境変数で Tomcat のバージョンを指定できます。

spring-framework-petclinic フォルダーに移動します。

cd spring-framework-petclinic

すべてのテストをスキップしながら、Maven ビルド領域をクリーンし、プロジェクトのコードをコンパイルし、WAR ファイルを作成します。

mvn clean package -DskipTests

ビルド コマンドを実行すると、petclinic.war というファイルが /target フォルダーに生成されます。

プロジェクトをデプロイする

JAR パッケージを Azure Container Apps にデプロイします。

Note

必要に応じて、Java ビルド環境変数で JDK のバージョンを指定できます。

これで、az containerapp up CLI コマンドを使って WAR ファイルをデプロイできるようになります。

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --subscription <SUBSCRIPTION_ID>\
  --location <LOCATION> \
  --environment <ENVIRONMENT_NAME> \
  --artifact <JAR_FILE_PATH_AND_NAME> \
  --ingress external \
  --target-port 8080 \
  --query properties.configuration.ingress.fqdn

Note

既定の JDK バージョンは 17 です。 アプリケーションとの互換性のために JDK のバージョンを変更する必要がある場合は、--build-env-vars BP_JVM_VERSION=<YOUR_JDK_VERSION> 引数を使ってバージョン番号を調整できます。

その他の適用できるビルド環境変数については、Java のビルド環境変数に関する記事を参照してください。

WAR パッケージを Azure Container Apps にデプロイします。

これで、az containerapp up CLI コマンドを使って WAR ファイルをデプロイできるようになります。

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --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

Note

既定の Tomcat バージョンは 9 です。 アプリケーションとの互換性のために Tomcat のバージョンを変更する必要がある場合は、--build-env-vars BP_TOMCAT_VERSION=<YOUR_TOMCAT_VERSION> 引数を使ってバージョン番号を調整できます。

この例では、BP_TOMCAT_VERSION=10.* 環境変数を設定することにより、Tomcat のバージョンが 10 (マイナー バージョンを含む) に設定されます。

その他の適用できるビルド環境変数については、Java のビルド環境変数に関する記事を参照してください。

アプリの状態を確認する

この例では、containerapp up コマンドに --query properties.configuration.ingress.fqdn 引数が含まれており、完全修飾ドメイン名 (FQDN) (アプリの URL とも呼ばれます) が返されます。

この URL をブラウザーに貼り付けて、アプリケーションを表示します。 アプリは次のスクリーンショットのようになります。

petclinic アプリケーションのスクリーンショット。

次のステップ