快速入门:在 Azure 容器应用中启动第一个 Java 应用程序

本文介绍如何部署 Spring PetClinic 示例应用程序以在 Azure 容器应用上运行。 您可以直接使用 Java 存档 (JAR) 文件或 Web 应用程序存档 (WAR) 文件部署 Java 应用程序,而不是手动创建 Dockerfile 并直接使用容器注册表。

在本教程结束时,你将部署一个 Web 应用程序。你可以通过 Azure 门户管理该应用程序。

下图是显示应用程序部署到 Azure 后的外观的屏幕截图。

petclinic 应用的屏幕截图。

先决条件

要求 说明
Azure 帐户 如果没有,请创建一个试用版订阅

需要拥有 Azure 订阅的“参与者”或“所有者”权限才能继续操作。

有关详细信息,请参阅使用 Azure 门户分配 Azure 角色
GitHub 帐户 免费获得一个。
git 安装 git
Azure CLI 安装 Azure CLI
容器应用 CLI 扩展 使用版本 0.3.47 或更高版本。 使用 az extension add --name containerapp --upgrade --allow-preview 命令安装最新版本。
Java 安装 Java 开发工具包。 使用版本 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

执行生成命令后,系统会在 /target 文件夹中生成名为 petclinic.jar 的文件。

注意

如有必要,可以在 Java 生成环境变量中指定 Tomcat 版本。

更改为 spring-framework-petclinic 文件夹。

cd spring-framework-petclinic

清理 Maven 生成区域,编译项目的代码,并创建 WAR 文件,同时跳过任何测试。

mvn clean package -DskipTests

执行生成命令后,系统会在 /target 文件夹中生成名为 petclinic.war 的文件。

部署项目

将 JAR 包部署到 Azure 容器应用。

注意

如有必要,可以在 Java 生成环境变量中指定 JDK 版本。

现在,可以使用 CLI 命令 az containerapp up 部署 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

注意

默认的 JDK 版本为 17。 如果需要更改 JDK 版本以与应用程序兼容,可以使用 --build-env-vars BP_JVM_VERSION=<YOUR_JDK_VERSION> 参数来调整版本号。

可以在 Java 生成环境变量中找到更适用的生成环境变量。

将 WAR 包部署到 Azure 容器应用。

现在,可以使用 CLI 命令 az containerapp up 部署 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

注意

默认 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 应用程序的屏幕截图。

后续步骤