共用方式為


使用 Azure Pipelines 為 MicroProfile 應用程式設定 CI/CD

本教學課程說明如何輕鬆地設定 Azure Pipelines 持續整合和持續部署 (CI/CD) 發行週期,將 MicroProfile Java EE 應用程式部署至適用於容器的 Azure Web 應用程式。 本教學課程中的 MicroProfile 應用程式會使用 Payara Micro 基底映像來建立 WAR 檔案。

FROM payara/micro:5.182
COPY target/*.war $DEPLOY_DIR/ROOT.war
EXPOSE 8080

您可以藉由建置 Docker 映射並將容器映射推送至 Azure Container Registry (ACR) 來啟動 Azure Pipelines 容器化程式。 您可以建立 Azure Pipelines 發行管線,並將容器映射部署至 Web 應用程式,以完成此程式。

必要條件

  1. Azure 入口網站 中,建立 Azure Container Registry

  2. 在 Azure 入口網站 中,建立適用於容器Azure Web 應用程式。 針對操作系統選取 [Linux],然後針對 [設定容器],選取 [快速入門] 作為 [映射來源]。

  3. 從範例 GitHub 存放庫複製並儲存複製 URL。https://github.com/Azure-Samples/microprofile-hello-azure

  4. 註冊或登入您的 Azure DevOps 組織,並建立新的 專案

  5. 將範例 GitHub 存放庫匯入 Azure Repos:

    1. 從您的 Azure DevOps 項目頁面,選取 左側導覽中的 Repos
    2. 在或匯入存放庫底下,選取 [匯入]。
    3. 在 [複製 URL] 下,輸入您儲存的 Git 複製 URL,然後選取 [匯入]。

建立組建管線

Azure Pipelines 中的持續整合建置管線會在每次 Java EE 來源應用程式中認可時,自動執行所有建置工作。 在此範例中,Azure Pipelines 會使用 Maven 來建置 Java MicroProfile 專案。

  1. 從您的 Azure DevOps 項目頁面中,選取左側導覽中的 [管線>組建]。

  2. 選取 [新增管線]

  3. 選取 [使用傳統編輯器來建立管線 (不使用 YAML)]

  4. 請確定您的專案名稱和匯入的 GitHub 存放庫會出現在欄位中,然後選取 [ 繼續]。

  5. 從範本清單中選取 [Maven ],然後選取 [ 套用]。

  6. 在右窗格中,確定 [代理程式集區] 下拉式清單中會出現 [裝載的 Ubuntu 1604]。

    注意

    此設定可讓 Azure Pipelines 知道要使用的組建伺服器。 您也可以使用私人、自定義的組建伺服器。

  7. 若要設定管線以進行持續整合,請選取左窗格中的 [觸發程式] 索引卷標,然後選取 [啟用持續整合] 旁的複選框。

  8. 在頁面頂端,選取 [儲存和佇列] 旁的下拉式清單,然後選取 [儲存]。

    啟用持續整合

建立 Docker 組建映像

Azure Pipelines 會使用 Dockerfile 搭配 Payara Micro 的基本映射來建立 Docker 映像。

  1. 選取 [工作] 索引標籤,然後選取 Agent 作業 1的加號+以新增工作。

    新增工作

  2. 在右窗格中,從範本清單中選取 [Docker] ,然後選取 [ 新增]。

  3. 在左窗格中選取 buildAndPush,然後在右窗格中,於 [顯示名稱] 字段中輸入描述

  4. [容器存放庫] 底下,選取 [Container Registry] 欄位旁的 [新增]。

  5. 填寫 [ 新增 Docker 登錄服務連線 ] 對話框,如下所示:

    欄位
    登錄類型 選取 [Azure Container Registry]
    連線名稱 輸入連接的名稱
    Azure 訂用帳戶 從下拉式清單中選取您的 Azure 訂用帳戶,並視需要選取 [ 授權]。
    Azure Container Registry 從下拉式清單中選取您的 Azure Container Registry 名稱。
  6. 選取 [確定]。

    新增 Docker 登錄服務連線

    注意

    如果您使用 Docker Hub 或其他登錄,請選取 [Docker Hub] 或 [其他登錄],而不是 [登錄類型] 旁的 [Azure Container Registry]。 然後提供容器登錄的認證和連線資訊。

  7. 在 [命令] 下,從 [命令] 下拉式清單中選取 [組建]。

  8. 選取 Dockerfile 字段旁的省略號 ...,流覽至 GitHub 存放庫並選取 Dockerfile,然後選取 [確定]。

    選取 Dockerfile

  9. 在 [ 標記] 底下,於 新行輸入 latest

  10. 在頁面頂端,選取 [儲存和佇列] 旁的下拉式清單,然後選取 [儲存]。

將 Docker 映像推送至 ACR

Azure Pipelines 會將 Docker 映像推送至您的 Azure Container Registry,並使用它以容器化 Java Web 應用程式的形式執行 MicroProfile API 應用程式。

  1. 由於您在 Azure Pipelines 中使用 Docker,請重複建立 Docker 組建映射底下的步驟,以建立另一個 Docker 範本。 這次,請在 [命令] 下拉式清單中選取 [推送]。

  2. 選取 [儲存和佇列] 旁的下拉式清單,然後選取 [儲存和佇列]。

  3. 在 [執行管線] 彈出視窗中,確定 [代理程式集區] 底下已選取 [託管 Ubuntu 1604],然後選取 [儲存並執行]。

  4. 建置完成後,您可以在 [建置] 頁面上選取超連結,以確認組建成功,並查看其他詳細數據。

    選取組建超連結

建立發行管線

Azure Pipelines 持續發行管線會在組建成功時自動觸發部署至目標環境,例如 Azure。 您可以為開發、測試、預備或生產環境等環境建立發行管線。

  1. 在 Azure DevOps 項目頁面上,選取左側導覽中的 [管線>發行]。

  2. 選取 [新增管線]

  3. 選取 [部署 Java 應用程式] 以在範本清單中 Azure App 服務,然後選取 [套用]。

    選取 [部署 Java 應用程式至 Azure App 服務 範本

  4. 在彈出視窗中,將 [階段 1] 變更為 [開發]、[測試]、[預備][生產] 等階段名稱,然後關閉視窗。

  5. 左窗格中的 [成品] 下,選取 [ 新增 ] 將組建管線中的成品鏈接至發行管線。

  6. 在右窗格中,選取 [來源][建置管線]拉式清單中的組建管線,然後選取 [新增]。

    新增組建成品

  7. 選取生產階段中的超連結,以檢視階段工作

    選取階段名稱

  8. 在右窗格中,填寫表單,如下所示:

    欄位
    Azure 訂用帳戶 從下拉式清單中選取您的 Azure 訂用帳戶。
    應用程式類型 從下拉式清單中選取 [適用於容器的 Web 應用程式] [Linux ]。
    App Service 名稱 從下拉式清單中選取您的 ACR 實例。
    登錄或命名空間 在欄位中輸入您的 ACR 名稱。 例如,輸入 mymicroprofileregistry.azure.io
    存放庫 輸入包含 Docker 映像的存放庫。

    設定階段工作

  9. 在左窗格中,選取 [部署戰爭] 以 Azure App 服務,然後在右窗格中,於 [卷標] 字段中輸入最新的標籤

  10. 在左窗格中,選取 [在代理程式上執行],然後在右窗格中,從 [代理程式區] 下拉式清單中選取 [託管 Ubuntu 1604]。

設定環境變數

新增並定義環境變數,以在部署期間連線到容器登錄。

  1. 選取 [ 變數] 索引標籤,然後選取 [新增 ],為您的容器登錄 URL、使用者名稱和密碼新增下列變數。

    名稱
    registry.url 輸入您的容器登錄 URL。 例如:https://mymicroprofileregistry.azure.io
    registry.username 輸入登錄的用戶名稱。
    registry.password 輸入登錄的密碼。 如需安全性,請選取鎖定圖示以隱藏密碼值。

    新增變數

  2. 在 [工作] 索引標籤上,選取 [部署戰爭] 以在左窗格中 Azure App 服務。

  3. 在右窗格中,展開 [應用程式和組態設定],然後選取 [應用程式設定] 字段旁邊的省略號 ...

  4. 在 [ 應用程式設定] 彈出視窗中,選取 [新增 ] 以定義並指派應用程式設定變數:

    名稱
    DOCKER_REGISTRY_SERVER_URL $(registry.url)
    DOCKER_REGISTRY_SERVER_USERNAME $(registry.username)
    DOCKER_REGISTRY_SERVER_PASSWORD $(registry.password)
  5. 選取 [確定]。

    新增和設定變數

設定持續部署

若要啟用持續部署:

  1. 在 [管線] 索引標籤的 [成品] 底下,選取組建成品中的閃電圖示。

  2. 在右窗格中,將 [ 持續部署觸發程式 ] 設定為 [已啟用]。

  3. 選取右上方的 [ 儲存 ],然後再次選取 [ 儲存 ]。

    啟用持續部署觸發程式

部署Java應用程式

現在您已啟用 CI/CD,修改原始程式碼會自動建立並執行組建和發行。 您也可以手動建立和執行版本,如下所示:

  1. 在發行管線頁面上的右上方,選取 [ 建立發行 ]。

  2. 在 [ 建立新版本 ] 頁面上,選取 [階段] 底下的 階段名稱,讓觸發程式從自動化變更為手動

  3. 選取 建立

  4. 選取發行名稱、將滑鼠停留或選取階段,然後選取 [ 部署]。

測試 Java Web 應用程式

部署成功完成之後,請測試您的 Web 應用程式。

  1. 從 Azure 入口網站 複製 Web 應用程式 URL。

    Azure 入口網站中的 App Service 應用程式

  2. 在網頁瀏覽器中輸入 URL 以執行您的應用程式。 網頁應該會顯示 Hello Azure!

    Java Web 應用程式頁面