本文介绍如何使用 Web 应用程序存档(WAR)文件或 Java 存档(JAR)文件将 Spring PetClinic 示例应用程序部署到 Azure 容器应用。
有多种选项可用于部署 Java 应用程序,包括以下选项:
- 从本地文件系统或代码存储库进行部署。
- 使用 Maven 或 IDE 进行部署。
- 使用 WAR 文件、JAR 文件或直接从源代码进行部署。
在本教程结束时,你将部署一个 Web 应用程序,该应用程序可以通过 Azure 门户进行管理。 以下屏幕截图显示了部署到 Azure 容器应用的 PetClinic 应用程序的主页:
- 一份 Azure 订阅。 免费创建一个。
-
Contributor
或Owner
权限在 Azure 订阅中。 有关详细信息,请参阅使用 Azure 门户分配 Azure 角色。 - GitHub 帐户。
- Git
- Azure CLI
- Azure 容器应用 CLI 扩展版本 0.3.47 或更高版本。 使用以下命令安装最新版本:
az extension add --name containerapp --upgrade --allow-preview
- Java 开发工具包版本 17 或更高版本。
- Apache Maven
使用以下步骤生成项目:
使用以下命令克隆 Azure 容器应用 Java 示例 存储库:
git clone https://github.com/Azure-Samples/azure-container-apps-java-samples.git
使用以下命令克隆 Spring PetClinic 示例应用程序 存储库:
git clone https://github.com/spring-petclinic/spring-framework-petclinic.git
使用以下命令导航到 spring-petclinic 文件夹:
cd azure-container-apps-java-samples/spring-petclinic/spring-petclinic/
使用以下命令将 Spring PetClinic 示例应用程序 存储库初始化并更新到最新版本:
git submodule update --init --recursive
使用以下命令清理 Maven 生成区域、编译项目的代码并创建 JAR 文件,并跳过这些过程中的所有测试:
mvn clean verify
现在你有一个 /target/petclinic.jar 文件。
使用以下命令导航到 spring-framework-petclinic 文件夹:
cd spring-framework-petclinic
使用以下命令清理 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>