你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:构建 Java Spring Boot 应用的容器映像并将其推送到 Azure 容器注册表

可使用本快速入门,通过 Maven 和 Jib 构建 Java Spring Boot 应用的容器映像,并将其推送到 Azure 容器注册表。 开发人员工具可通过 Maven 和 Jib 与 Azure 容器注册表进行交互。

系统必备

在 Docker 上创建并生成 Spring Boot 应用程序

以下步骤将指导你构建容器化的 Java Spring Boot web 应用程序并在本地进行测试。

  1. 在命令提示符下,使用以下命令克隆 Docker 上的 Spring Boot 入门示例项目。

    git clone https://github.com/spring-guides/gs-spring-boot-docker.git
    
  2. 将目录更改为已完成项目。

    cd gs-spring-boot-docker/complete
    
  3. 使用 Maven 生成和运行示例应用。

    mvn package spring-boot:run
    
  4. 通过浏览到 http://localhost:8080 或使用以下 curl 命令测试 Web 应用:

    curl http://localhost:8080
    

应当会看到显示了以下消息:Hello Docker World

使用 Azure CLI 创建 Azure 容器注册表

接下来,使用以下步骤创建 Azure 资源组和 ACR:

  1. 使用以下命令登录到 Azure 帐户:

    az login
    
  2. 指定要使用的 Azure 订阅:

    az account set -s <subscription ID>
    
  3. 为本教程中使用的 Azure 资源创建资源组。 在以下命令中,请务必将占位符替换为自己的资源名称和位置,例如 eastus

    az group create \
        --name=<your resource group name> \
        --location=<location>
    
  4. 使用以下命令在资源组中创建专用 Azure 容器注册表。 请务必将占位符替换为实际值。 本教程的后续步骤会将示例应用作为 Docker 映像推送到此注册表。

    az acr create \
        --resource-group <your resource group name> \
        --location <location> \
        --name <your registry name> \
        --sku Basic
    

通过 Jib 将应用推送到容器注册表

最后,请更新项目配置,使用命令提示符生成并部署映像。

注意

若要登录到刚刚创建的 Azure 容器注册表,需要运行 Docker 守护程序。 若要在计算机上安装 Docker,请阅读官方 Docker 文档

  1. 在 Azure CLI 中使用以下命令登录到 Azure 容器注册表。 请务必将占位符替换为自己的注册表名称。

    az config set defaults.acr=<your registry name>
    az acr login
    

    az config 命令设置要在 az acr 命令中使用的默认注册表名称。

  2. 导航到 Spring Boot 应用程序的完整项目目录(例如,“C:\SpringBoot\gs-spring-boot-docker\complete”或“/users/robert/SpringBoot/gs-spring-boot-docker/complete”),并使用文本编辑器打开 pom.xml 文件 。

  3. 使用以下 XML 更新 pom.xml 文件中的 <properties> 集合。 将占位符替换为注册表名,并添加值为 2.2.0<jib-maven-plugin.version> 属性,或添加较新版本的 jib-maven-plugin

    <properties>
       <docker.image.prefix><your registry name>.azurecr.io</docker.image.prefix>
       <java.version>1.8</java.version>
       <jib-maven-plugin.version>2.2.0</jib-maven-plugin.version>
    </properties>
    
  4. 更新 pom.xml 文件中的 <plugins> 集合,使 <plugin> 元素包含 jib-maven-plugin 的条目,如以下示例中所示。 请注意,我们将使用 Microsoft 容器注册表 (MCR) 中的基础映像:mcr.microsoft.com/openjdk/jdk:11-ubuntu,其中包含 Azure 正式支持的 JDK。 有关具有正式支持的 JDK 的其他 MCR 基础映像,请参阅 安装 Microsoft Build of 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>
    
  5. 导航到 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.io/gs-spring-boot-docker

后续步骤

有关 Microsoft 正式支持的其他 Java 基础映像版本,请参阅:

若要了解有关 Spring 和 Azure 的详细信息,请继续访问“Azure 上的 Spring”文档中心。

其他资源

有关详细信息,请参阅以下资源: