共用方式為


將 Spring Boot 應用程式部署至 Azure App Service 上的 Linux

本教學課程會逐步解說如何使用 Docker,將 Spring Boot 應用程式容器化,並將您自己的 Docker 映射部署到 azure App Service中的 Linux 主機。

先決條件

若要完成本教學課程中的步驟,您必須具備下列必要條件:

注意

由於本教學課程的虛擬化需求,您無法遵循虛擬機上本文中的步驟;您必須使用已啟用虛擬化功能的實體電腦。

在 Docker 使用者入門 Web 應用程式上建立 Spring Boot

下列步驟會逐步解說建立簡單 Spring Boot Web 應用程式並在本機測試所需的步驟。

  1. 開啟命令提示符,建立一個本機目錄來保存您的應用程式,然後切換至該目錄;例如:

    mkdir SpringBoot
    cd SpringBoot
    
  2. 將 Docker 快速入門上的 Spring Boot 範例項目複製到您所建立的目錄中;例如:

    git clone https://github.com/spring-guides/gs-spring-boot-docker.git
    
  3. 將目錄變更為已完成的專案;例如:

    cd gs-spring-boot-docker/complete
    
  4. 使用 Maven 建置 JAR 檔案;例如:

    mvn package
    
  5. 建立 Web 應用程式之後,請將目錄變更為 JAR 檔案所在的 target 目錄,然後啟動 Web 應用程式;例如:

    cd target
    java -jar spring-boot-docker-complete-0.0.1-SNAPSHOT.jar --server.port=80
    
  6. 使用網頁瀏覽器在本機開啟 Web 應用程式以進行測試。 例如,如果您有 curl 可用,而且您已將 Tomcat 伺服器設定為在埠 80 上執行:

    curl http://localhost
    
  7. 您應該會看到下列訊息顯示:Hello Docker World

    在本機瀏覽範例應用程式

建立 Azure Container Registry 以作為私人 Docker 登錄使用

下列步驟會逐步解說如何使用 Azure 入口網站來建立 Azure Container Registry。

注意

如果您想要使用 Azure CLI 而非 Azure 入口網站,請遵循 使用 Azure CLI 2.0建立私人 Docker 容器登錄中的步驟。

  1. 瀏覽到 Azure 入口網站 ,然後登入。

    在 Azure 入口網站上登入帳戶之後,請遵循 文章『使用 Azure 入口網站建立私人 Docker 容器登錄』中的步驟,以下為方便起見,會加以改述。

  2. 按一下 [新增] 選單圖示,選取 [容器],然後選取 [Azure Container Registry]。

    建立新的 Azure Container Registry

  3. 顯示 [建立容器登錄] 頁面 時,輸入 登錄名稱訂用帳戶資源群組,以及 Location。 然後選擇 建立

    配置 Azure Container Registry 設定

  4. 在 [設定] 底下選取 [存取 金鑰],然後在 [系統管理員使用者]後方開啟 [啟用] 參數。

    在 Azure 入口中啟用系統管理員使用者 UI

設定 Maven 以將容器映像建置並推送至您的 Azure 容器註冊表

  1. 流覽至 Spring Boot 應用程式已完成的項目目錄 - 例如,C:\SpringBoot\gs-spring-boot-docker\complete/users/robert/SpringBoot/gs-spring-boot-docker/complete - 並使用文本編輯器開啟 pom.xml 檔案。

  2. 使用本教學課程上一節中最新版的 <properties>、登入伺服器值,以及存取 Azure Container Registry 的設定,更新 pom.xml 檔案中的 集合。 例如:

    <properties>
       <jib-maven-plugin.version>3.2.0</jib-maven-plugin.version>
       <docker.image.prefix>wingtiptoysregistry.azurecr.io</docker.image.prefix>
       <java.version>1.8</java.version>
    </properties>
    
  3. jib-maven-plugin 新增至 <plugins> 檔案中的 集合。 此範例使用 3.2.0 版。

    <from>/<image>指定基礎影像,這裡 mcr.microsoft.com/openjdk/jdk:11-ubuntu。 指定要從 <to>/<image>中基底建置的最終映像名稱。

    驗證 {docker.image.prefix} 是在先前顯示的登錄頁面上的 登入伺服器{project.artifactId} 是專案第一個 Maven 組建中 JAR 檔案的名稱和版本號碼。

    <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>
    
  4. 瀏覽至 Spring Boot 應用程式已完成的專案目錄,然後執行下列命令來重建應用程式,並將容器推送至您的 Azure Container Registry:

    az acr login --name wingtiptoysregistry && mvn compile jib:build
    

注意

  1. 命令 az acr login ... 會嘗試登入 Azure Container Registry,否則您需要提供 jib-maven-plugin 的 <username><password>,請參閱 jib 中的 驗證方法
  2. 當您使用 Jib 將映射推送至 Azure Container Registry 時,映射將不會使用 Dockerfile。 如需詳細資訊,請參閱 檔。

在 Azure App Service 上使用容器映像在 Linux 上建立 Web 應用程式

  1. 瀏覽到 Azure 入口網站 ,然後登入。

  2. 單擊 [建立資源] 的功能表圖示,選取 [計算],然後選取 [Web 應用程式]。

    在 Azure 入口網站中建立新的 Web 應用程式

  3. 當 Linux 頁面上的 Web 應用程式顯示時,請輸入下列資訊:

    • 從下拉式清單中選擇 訂用帳戶

    • 選擇現有的 資源群組,或指定名稱來建立新的資源群組。

    • 輸入 應用程式名稱的唯一名稱,;例如:wingtiptoyslinux

    • 指定 Docker Container發佈

    • 針對 [操作系統] 欄位,選擇 [Linux]。

    • 選擇 區域

    • 接受 Linux 方案 並選擇現有的 App Service 方案,或選取 [建立新的],以建立新的 App Service 方案。

    • 點選「下一步」:Docker

    點擊下一步:Docker 按鈕以繼續。

    在 [Web 應用程式] 頁面上,選取 [Docker],然後輸入下列資訊:

    • 選取 單一容器

    • 登錄:選擇您的容器,例如:wingtiptoysregistry

    • 映像:選擇先前建立的映像,例如:spring-boot-docker

    • 標籤:選擇影像的標籤,例如:最新的

    • 啟動命令:保持空白,因為映像檔已經包含啟動命令。

    輸入上述所有信息之後,請選取 檢視 + 建立

    選取 [檢閱 + 建立] 以完成。

    • 選取 檢閱 + 建立

檢閱信息,然後選取 建立

部署完成時,請選擇 移至資源。 部署頁面會顯示要存取應用程式的URL。

取得部署 URL

注意

Azure 會自動將因特網要求對應至埠 - 80 上執行的內嵌 Tomcat 伺服器。 不過,如果您將內嵌 Tomcat 伺服器設定為在埠 - 8080 或自定義埠上執行,則必須將環境變數新增至 Web 應用程式,以定義內嵌 Tomcat 伺服器的埠。 若要這樣做,請使用下列步驟:

  1. 瀏覽到 Azure 入口網站 ,然後登入。

  2. 選取 Web Apps圖示,然後從 App Services 頁面中選取您的應用程式。

  3. 選取左側瀏覽窗格中 組態

  4. 在 [應用程式設定] 區段中,新增名為 WEBSITES_PORT 的新設定,然後輸入值的自定義埠號碼。

  5. 選取 [確定] 。 然後選擇 儲存

在 Azure 入口網站中儲存自定義埠號碼

清除資源

不再需要時,請使用 Azure 入口網站 刪除本文中建立的資源,以避免產生非預期的費用。

後續步驟

若要深入瞭解 Spring 和 Azure,請繼續前往 Azure 上的 Spring 檔中心。

另請參閱

如需在 Azure 上使用 Spring Boot 應用程式的詳細資訊,請參閱下列文章:

如需搭配 Java 使用 Azure 的詳細資訊,請參閱 適用於 Java 開發人員的 Azure,以及 使用 Azure DevOps 和 Java

如需 Docker 上 Spring Boot 範例項目的進一步詳細數據,請參閱 Docker 快速入門上的 Spring Boot

如需有關開始使用您自己的 Spring Boot 應用程式的幫助,請參閱位於 https://start.spring.io/

如需開始建立簡單 Spring Boot 應用程式的詳細資訊,請參閱 https://start.spring.io/的 Spring Initializr。

如需更多關於如何在 Azure 上使用自訂 Docker 映像的範例,請參閱 在 Linux 上的 Azure Web 應用程式自訂 Docker 映像