可使用本快速入门,通过 Maven 和 Jib 构建 Java Spring Boot 应用的容器映像,并将其推送到 Azure 容器注册表。 开发人员工具可通过 Maven 和 Jib 与 Azure 容器注册表进行交互。
- Azure 订阅;如果你还没有 Azure 订阅,注册试用版订阅或激活 MSDN 订阅者权益。
- 受支持的 Java 开发工具包 (JDK);有关在 Azure 上进行开发时可供使用的 JDK 的详细信息,请参阅 Azure 和 Azure Stack 上的 Java 支持。
- Azure CLI。
- Apache 的 Maven 生成工具(版本 3 或更高报表)。
- Git 客户端。
- Docker 客户端。
- ACR Docker 凭据帮助器。
以下步骤将指导你构建容器化的 Java Spring Boot web 应用程序并在本地进行测试。
在命令提示符下,使用以下命令克隆 Docker 上的 Spring Boot 入门示例项目。
git clone https://github.com/spring-guides/gs-spring-boot-docker.git
将目录更改为已完成项目。
cd gs-spring-boot-docker/complete
使用 Maven 生成和运行示例应用。
mvn package spring-boot:run
通过浏览到
http://localhost:8080
或使用以下curl
命令测试 Web 应用:curl http://localhost:8080
应当会看到显示了以下消息:Hello Docker World
接下来,使用以下步骤创建 Azure 资源组和 ACR:
使用以下命令登录到 Azure 帐户:
az cloud set -n AzureChinaCloud az login # az cloud set -n AzureCloud //means return to Public Azure.
指定要使用的 Azure 订阅:
az account set -s <subscription ID>
为本教程中使用的 Azure 资源创建资源组。 在以下命令中,请务必将占位符替换为自己的资源名称和位置,例如
chinaeast2
。az group create \ --name=<your resource group name> \ --location=<location>
使用以下命令在资源组中创建专用 Azure 容器注册表。 请务必将占位符替换为实际值。 本教程的后续步骤会将示例应用作为 Docker 映像推送到此注册表。
az acr create \ --resource-group <your resource group name> \ --location <location> \ --name <your registry name> \ --sku Basic
最后,请更新项目配置,使用命令提示符生成并部署映像。
备注
若要登录到刚刚创建的 Azure 容器注册表,需要运行 Docker 守护程序。 若要在计算机上安装 Docker,请阅读官方 Docker 文档。
在 Azure CLI 中使用以下命令登录到 Azure 容器注册表。 请务必将占位符替换为自己的注册表名称。
az config set defaults.acr=<your registry name> az acr login
az config
命令设置要在az acr
命令中使用的默认注册表名称。导航到 Spring Boot 应用程序的完整项目目录(例如,“C:\SpringBoot\gs-spring-boot-docker\complete”或“/users/robert/SpringBoot/gs-spring-boot-docker/complete”),并使用文本编辑器打开 pom.xml 文件 。
使用以下 XML 更新 pom.xml 文件中的
<properties>
集合。 将占位符替换为注册表名,并添加值为2.2.0
的<jib-maven-plugin.version>
属性,或添加较新版本的 jib-maven-plugin。<properties> <docker.image.prefix><your registry name>.azurecr.cn</docker.image.prefix> <java.version>1.8</java.version> <jib-maven-plugin.version>2.2.0</jib-maven-plugin.version> </properties>
更新 pom.xml 文件中的
<plugins>
集合,使<plugin>
元素包含jib-maven-plugin
的条目,如以下示例中所示。 请注意,我们将使用 Microsoft 容器注册表 (MCR) 中的基础映像:mcr.microsoft.com/openjdk/jdk:11-ubuntu
,其中包含 Azure 正式支持的 JDK。 有关具有官方支持的 JDK 的其他 MCR 基础映像,请参阅安装 Azure 版 OpenJDK。<plugin> <artifactId>jib-maven-plugin</artifactId> <groupId>com.google.cloud.tools</groupId> <version>${jib-maven-plugin.version}</version> <configuration> <from> <image>mcr.microsoft.com/openjdk/jdk:11-ubuntu</image> </from> <to> <image>${docker.image.prefix}/${project.artifactId}</image> </to> </configuration> </plugin>
导航到 Spring Boot 应用程序的完成项目目录,然后运行以下命令以生成映像并将映像推送到注册表:
az acr login && mvn compile jib:build
备注
出于安全原因,az acr login
创建的凭据的有效期仅为 1 小时。 如果收到“401 未授权”错误,可以再次运行 az acr login -n <your registry name>
命令以重新进行身份验证。
祝贺你! 现已在 Azure 支持的 JDK 中生成了容器化 Java 应用,并已将其推送到 ACR。 接下来可通过以下方式测试映像:将其部署到 Azure 应用服务,或使用以下命令(请替换占位符)将其提取到本地:
docker pull <your registry name>.azurecr.cn/gs-spring-boot-docker
有关 Microsoft 正式支持的其他 Java 基础映像版本,请参阅:
若要了解有关 Spring 和 Azure 的详细信息,请继续访问“Azure 上的 Spring”文档中心。
有关详细信息,请参阅以下资源: