チュートリアル: Azure Container Apps 内の Tomcat に WAR ファイルをデプロイする

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

このチュートリアルを完了すると、Spring PetClinic サンプル アプリケーションのホーム ページを表示するアプリケーションを Container Apps にデプロイできるようになります。

Screenshot of petclinic app.

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 ファイルをデプロイする

  1. サンプル アプリケーションを入手します。

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

    git clone https://github.com/spring-petclinic/spring-framework-petclinic.git
    
  2. WAR パッケージをビルドします。

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

    cd spring-framework-petclinic
    

    次に、テストをスキップする際は、Maven ビルド領域をクリーンし、プロジェクトのコードをコンパイルし、WAR ファイルを作成します。

    mvn clean package -DskipTests
    

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

  3. 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 のビルド環境変数に関する記事を参照してください。

  4. アプリの状態を確認します。

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

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

    Screenshot of petclinic application.

次のステップ