快速入門:建置 Java Spring Boot 應用程式的容器映像並將其推送至 Azure Container Registry
您可以使用本快速入門來建置 Java Spring Boot 應用程式的容器映像,並使用 Maven 和 Jib 將其推送至 Azure Container Registry。 Maven 和 Jib 是使用開發人員工具來與 Azure Container Registry 互動的其中一個方式。
必要條件
- Azure 訂用帳戶;如果您還沒有 Azure 訂用帳戶,則可以註冊免費的 Azure 帳戶或啟用 MSDN 訂閱者權益。
- 支援的 Java 開發套件 (JDK);如需在 Azure 上開發時可用 JDK 的詳細資訊,請參閱 Azure 和 Azure Stack 上的 Java 支援。
- Azure CLI。
- Apache 的 Maven 建置工具 (第 3 版或以上)。
- Git 用戶端。
- Docker 用戶端。
- ACR Docker 認證協助程式。
在 Docker 上建立和建置 Spring Boot 應用程式
下列步驟會引導您建置容器化 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
來測試 Web 應用程式,或使用下列curl
命令:curl http://localhost:8080
您應該會看到顯示下列訊息:Hello Docker World
使用 Azure CLI 建立 Azure Container Registry
接下來,您將使用下列步驟來建立 Azure 資源群組和您的 ACR:
使用下列命令來登入您的 Azure 帳戶:
az login
指定要使用的 Azure 訂用帳戶:
az account set -s <subscription ID>
為此教學課程中使用的 Azure 資源建立資源群組。 在下列命令中,請務必以自己的資源名稱和位置取代預留位置,例如
eastus
。az group create \ --name=<your resource group name> \ --location=<location>
使用下列命令,在資源群組中建立私人 Azure Container Registry。 請務必以實際值取代預留位置。 本教學課程會在稍後的步驟中,將範例應用程式推送為此登錄的 Docker 映像。
az acr create \ --resource-group <your resource group name> \ --location <location> \ --name <your registry name> \ --sku Basic
透過 Jib 將應用程式推送至容器登錄
最後,您將更新您的專案組態,並使用命令提示字元來建置和部署您的映像。
注意
若要登入您剛建立的 Azure Container Registry,您必須執行 Docker 精靈。 若要在電腦上安裝 Docker,這裡是官方的 Docker 文件。
使用下列命令,從 Azure CLI 登入您的 Azure Container Registry。 請務必將以自己的登錄名稱取代預留位置。
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.io</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 Container Registry (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>
瀏覽至 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 App Service,或使用命令將其提取至本機 (取代預留位置),以測試映像:
docker pull <your registry name>.azurecr.io/gs-spring-boot-docker
下一步
如需其他版本的正式 Microsoft 支援 Java 基底映像,請參閱:
若要深入了解 Spring 和 Azure,請繼續閱讀「Azure 上的 Spring」文件中心中的資訊。
其他資源
如需詳細資訊,請參閱以下資源: