チュートリアル: Azure Container Apps 内の Tomcat に WAR ファイルをデプロイする
Docker ファイルを手動で作成してコンテナー レジストリを直接使うのではなく、Web アプリケーション アーカイブ (WAR) ファイルから Java アプリケーションを直接デプロイできます。 この記事では、WAR ファイルを使って Tomcat 上の Java アプリケーションを Azure Container Apps にデプロイする方法について説明します。
このチュートリアルを完了すると、Spring PetClinic サンプル アプリケーションのホーム ページを表示するアプリケーションを Container Apps にデプロイできるようになります。
Note
必要に応じて、ビルド環境変数で Tomcat のバージョンを指定できます。
前提条件
要件 | 手順 |
---|---|
Azure アカウント | お持ちでない場合は、無料のアカウントを作成してください。<br 続行するには、Azure サブスクリプションの "共同作成者" または "所有者" のアクセス許可が必要です。 詳細については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。 |
GitHub アカウント | 1 つ無料で取得できます。 |
git | git をインストールします |
Azure CLI | Azure CLI をインストールします。 |
Java | Java Development Kit をインストールします。 バージョン 17 以降を使ってください。 |
Maven | Maven をインストールします。 |
Tomcat に WAR ファイルをデプロイする
サンプル アプリケーションを入手します。
Spring PetClinic サンプル アプリケーションをマシンに複製します。
git clone https://github.com/spring-petclinic/spring-framework-petclinic.git
WAR パッケージをビルドします。
まず、spring-framework-petclinic フォルダーに移動します。
cd spring-framework-petclinic
次に、テストをスキップする際は、Maven ビルド領域をクリーンし、プロジェクトのコードをコンパイルし、WAR ファイルを作成します。
mvn clean package -DskipTests
ビルド コマンドを実行すると、petclinic.war というファイルが /target フォルダーに生成されます。
WAR パッケージを Azure Container Apps にデプロイします。
これで、
az containerapp up
CLI コマンドを使って WAR ファイルをデプロイできるようになります。az containerapp up \ --name <YOUR_CONTAINER_APP_NAME> \ --resource-group <YOUR_RESOURCE_GROUP> \ --subscription <YOUR_SUBSCRIPTION>\ --location <LOCATION> \ --environment <YOUR_ENVIRONMENT_NAME> \ --artifact <YOUR_WAR_FILE_PATH> \ --build-env-var BP_TOMCAT_VERSION=10.* \ --ingress external \ --target-port 8080 \ --query properties.configuration.ingress.fqdn
Note
既定の Tomcat バージョンは 9 です。 アプリケーションとの互換性のために Tomcat のバージョンを変更する必要がある場合は、
--build-env-var BP_TOMCAT_VERSION=<YOUR_TOMCAT_VERSION>
引数を使ってバージョン番号を調整できます。この例では、
BP_TOMCAT_VERSION=10.*
環境変数を設定することにより、Tomcat のバージョンが10
(マイナー バージョンを含む) に設定されます。その他の適用できるビルド環境変数については、Java のビルド環境変数に関する記事を参照してください。
アプリの状態を確認します。
この例では、
containerapp up
コマンドに--query properties.configuration.ingress.fqdn
引数が含まれており、完全修飾ドメイン名 (FQDN) (アプリの URL とも呼ばれます) が返されます。この URL をブラウザーに貼り付けて、アプリケーションを表示します。 アプリは次のスクリーンショットのようになります。