快速入门:使用 WAR 或 JAR 文件在 Azure 容器应用中启动第一个 Java 应用程序

本文介绍如何使用 Web 应用程序存档(WAR)文件或 Java 存档(JAR)文件将 Spring PetClinic 示例应用程序部署到 Azure 容器应用。

有多种选项可用于部署 Java 应用程序,包括以下选项:

  • 从本地文件系统或代码存储库进行部署。
  • 使用 Maven 或 IDE 进行部署。
  • 使用 WAR 文件、JAR 文件或直接从源代码进行部署。

在本教程结束时,你将部署一个 Web 应用程序,该应用程序可以通过 Azure 门户进行管理。 以下屏幕截图显示了部署到 Azure 容器应用的 PetClinic 应用程序的主页:

PetClinic 应用的主页的屏幕截图。

先决条件

生成项目

使用以下步骤生成项目:

  1. 使用以下命令克隆 Azure 容器应用 Java 示例 存储库:

    git clone https://github.com/Azure-Samples/azure-container-apps-java-samples.git
    
  1. 使用以下命令克隆 Spring PetClinic 示例应用程序 存储库:

    git clone https://github.com/spring-petclinic/spring-framework-petclinic.git
    
  1. 使用以下命令导航到 spring-petclinic 文件夹:

    cd azure-container-apps-java-samples/spring-petclinic/spring-petclinic/
    
  2. 使用以下命令将 Spring PetClinic 示例应用程序 存储库初始化并更新到最新版本:

    git submodule update --init --recursive
    
  3. 使用以下命令清理 Maven 生成区域、编译项目的代码并创建 JAR 文件,并跳过这些过程中的所有测试:

    mvn clean verify
    

现在你有一个 /target/petclinic.jar 文件。

  1. 使用以下命令导航到 spring-framework-petclinic 文件夹:

    cd spring-framework-petclinic
    
  2. 使用以下命令清理 Maven 生成区域、编译项目的代码并创建 JAR 文件,并跳过这些过程中的所有测试:

    mvn clean verify
    

你现在有 /target/petclinic.war 文件。

部署项目

使用以下命令将 JAR 包部署到 Azure 容器应用:

备注

默认的 JDK 版本为 17。 可以选择使用环境变量指定版本。 若要更改 JDK 版本以与应用程序兼容,请使用 --build-env-vars BP_JVM_VERSION=<your-JDK-version> 参数。 有关详细信息,请参阅 Azure 容器应用中的 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 容器应用:

备注

默认 Tomcat 版本为 9。 若要更改版本以与应用程序兼容,请使用 --build-env-vars BP_TOMCAT_VERSION=<your-Tomcat-version> 参数。 在此示例中,Tomcat 版本通过设置 BP_TOMCAT_VERSION=10.*设置为 10(包括任何次要版本)。 有关详细信息,请参阅 Azure 容器应用中的 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>