透過 Cloud Build 從 Git 持續部署

您可以透過 Cloud Build 觸發條件,在有新修訂版本推送到 Git 存放區的特定分支版本時,使用 Cloud Build 自動建構及部署程式碼,藉此自動執行建構作業,並將內容部署至 Cloud Run。如需範例,請參閱建立範本存放區並從 Git 持續部署的快速入門指南。

使用 Cloud Build 觸發程序建構容器時,部署到 Cloud Run 後,服務的來源存放區資訊會顯示在 Google Cloud 主控台中。

或者,您也可以使用 Cloud Deploy 設定持續交付管道,將 Cloud Run 服務部署至多個環境。

事前準備

  • 您擁有含 Dockerfile 的 Git 存放區,或程式碼是以 Google Cloud 建構套件支援的語言編寫而成。
  • Enable the Cloud Build API.

    Enable the API

必要的角色

如要取得使用 Cloud Build 從 Git 部署 Cloud Run 服務所需的權限,請要求管理員在專案中授予下列 IAM 角色:

執行建構作業的服務帳戶必須具備下列角色:

如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱 Cloud Run IAM 角色Cloud Run IAM 權限。如果 Cloud Run 服務與Google Cloud API (例如 Cloud 用戶端程式庫) 介接,請參閱服務身分設定指南。 如要進一步瞭解如何授予角色,請參閱部署權限管理存取權

透過 Cloud Run 使用者介面設定持續部署

設定程序會因您是在新服務還是現有服務上設定持續部署而略有不同。點按適當的分頁標籤即可瞭解詳情。

新服務

  1. 如「部署新服務」一文所述建立新服務,並在「服務設定」頁面中選取「持續透過原始碼存放區部署新的修訂版本」

  2. 在「服務設定」頁面中,按一下「設定 Cloud Build」

  3. GitHub 是預設的存放區供應商。如果尚未進行驗證,請按一下「Authenticate」(驗證),然後按照操作說明操作。連結存放區時,請使用 Cloud Build GitHub 應用程式。

    設定持續部署功能 (步驟 1)

  4. 點選「下一步」

  5. 在「建構設定」步驟中填寫選項:

    • 分支:指出執行觸發程序時應使用的來源。您可以在這裡輸入規則運算式。系統會自動驗證相符的分支機構,並顯示在輸入內容下方。請注意,如果系統只比對到一個分支,觸發程序會在建立後自動執行。
    • 建構類型

      • 如果存放區應使用 Docker 建構,且包含 Dockerfile,請選取「Dockerfile」Dockerfile。「來源位置」會指出 Dockerfile 的位置和名稱。這個目錄會做為 Docker 建構作業的結構定義。所有路徑都應相對於目前目錄。

      • 否則請選取「Google Cloud Buildpacks」。使用建構包內容指定目錄,並使用進入點 (選用) 提供啟動伺服器的指令。範例: gunicorn -p :8080 main:app (適用於 Python)、 java -jar target/myjar.jar (適用於 Java)。留空即可使用預設行為

    設定持續部署步驟 2

  6. 按一下 [儲存]

  7. 確認所選設定。

    設定持續部署驗證

  8. 點選「建立」

  9. 請注意,系統會將您重新導向至「服務詳細資料」頁面,您可以在該頁面追蹤持續部署設定的進度。

  10. 完成所有步驟後,請注意其他選項:

現有服務

  1. 前往 Cloud Run

  2. 在服務清單中找出所需服務,然後按一下。

  3. 按一下「設定持續部署」

  4. GitHub 是預設的存放區供應商。如果尚未進行驗證,請按一下「Authenticate」(驗證),然後按照操作說明操作。連結存放區時,請使用 Cloud Build GitHub 應用程式。

    設定持續部署功能 (步驟 1)

  5. 點選「下一步」

  6. 在「建構設定」步驟中填寫選項:

    • 分支:指出執行觸發程序時應使用的來源。您可以在這裡輸入規則運算式。系統會自動驗證相符的分支機構,並顯示在輸入內容下方。請注意,如果系統只比對到一個分支,觸發程序會在建立後自動執行。
    • 建構類型

      • 如果存放區應使用 Docker 建構,且包含 Dockerfile,請選取「Dockerfile」Dockerfile。「來源位置」會指出 Dockerfile 的位置和名稱。這個目錄會做為 Docker 建構作業的結構定義。所有路徑都應相對於目前目錄。

      • 否則請選取「Google Cloud Buildpacks」。使用建構包內容指定目錄,並使用進入點 (選用) 提供啟動伺服器的指令。範例: gunicorn -p :8080 main:app (適用於 Python)、 java -jar target/myjar.jar (適用於 Java)。留空即可使用預設行為

    設定持續部署步驟 2

  7. 按一下 [儲存]

  8. 頁面會重新載入,並顯示持續部署設定的進度。

  9. 完成所有步驟後,請注意其他選項:

手動設定持續部署

如需使用手動程序而非 UI,請參閱手動設定持續部署

將現有的 Cloud Build 觸發條件附加至 Cloud Run 服務。

如果您已有 Cloud Build 觸發程序,可以將其附加至服務,並在「Service Details」(服務詳細資料) 頁面中,使用 Google Cloud 控制台功能:「Edit Continuous Deployment」(編輯持續部署) 按鈕和「Build History」(建構記錄) 圖表。

如要執行這項操作,請新增以 gcb-trigger-id 做為鍵的標籤,並以 Cloud Build 觸發程序的專屬 ID 做為值 (不是觸發程序名稱)。如要設定標籤,請參閱「設定或修改標籤」。