本文介绍如何部署 Spring PetClinic 示例应用程序以在 Azure 容器应用上运行。 您可以直接使用 Java 存档 (JAR) 文件或 Web 应用程序存档 (WAR) 文件部署 Java 应用程序,而不是手动创建 Dockerfile 并直接使用容器注册表。
在本教程结束时,你将部署一个 Web 应用程序。你可以通过 Azure 门户管理该应用程序。
下图是显示应用程序部署到 Azure 后的外观的屏幕截图。
要求 | 说明 |
---|---|
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 粘贴到浏览器中来查看应用程序。 你的应用应与以下屏幕截图类似。