您可以使用 Cloud Build 觸發條件自動執行建構作業,並將內容部署至 Cloud Run。只要有新的修訂版本推送至 Git 存放區的特定分支版本,系統就會自動建構及部署程式碼。如需範例,請參閱建立範本存放區並從 Git 持續部署的快速入門指南。
使用 Cloud Build 觸發事件建構容器時,在部署至 Cloud Run 後,服務的 Google Cloud 主控台會顯示來源存放區資訊。
或者,您也可以使用 Cloud Deploy 設定持續部署管道,將 Cloud Run 服務部署至多個環境。
事前準備
- 您有含
Dockerfile
的 Git 存放區,或是您的程式碼集是以 Google Cloud 的 Buildpack 支援的語言之一編寫。 -
Enable the Cloud Build API.
必要的角色
如要取得使用 Cloud Build 從 Git 部署 Cloud Run 服務所需的權限,請要求管理員在專案中授予您下列 IAM 角色:
-
Artifact Registry 管理員 (
roles/artifactregistry.admin
) -
Cloud Build 編輯器 (
roles/cloudbuild.builds.editor
) -
Cloud Run 開發人員 (
roles/run.developer
) -
服務帳戶使用者 (
roles/iam.serviceAccountUser
) -
服務使用情形管理員 (
roles/serviceusage.serviceUsageAdmin
)
執行建構作業的服務帳戶必須具備下列角色:
- Cloud Build 服務帳戶 (
roles/cloudbuild.builds.builder
) - Cloud Run 管理員 (
roles/run.admin
) - 服務帳戶使用者 (
roles/iam.serviceAccountUser
)
如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果您的 Cloud Run 服務會與Google Cloud API 互動 (例如 Cloud 用戶端程式庫),請參閱服務身分設定指南。如要進一步瞭解如何授予角色,請參閱部署權限和管理存取權。
透過 Cloud Run 使用者介面設定持續部署
設定程序會因您是在新服務還是現有服務上設定持續部署而有所不同。按一下適當的分頁標籤,即可瞭解詳情。
新服務
按照「部署新服務」一節的說明建立新服務,請務必在「服務設定」頁面中選取「持續透過原始碼存放區部署新的修訂版本」。
在「服務設定」頁面中,按一下「設定 Cloud Build」。
GitHub 是預設的存放區供應工具。如果尚未進行驗證,請按一下「Authenticate」(驗證),然後按照操作說明操作。您可以使用 Cloud Build GitHub 應用程式連結存放區。
點按「Next」。
在「Build Configuration」步驟中填入選項:
- Branch:指出執行觸發事件時應使用的來源。您可以在此處輸入規則。系統會自動驗證相符的分支,您可以在輸入內容下方看到這些分支。請注意,如果只符合一個分支,系統會在建立後自動執行觸發事件。
建構類型
如果您的存放區應使用 Docker 建構,且包含 Dockerfile,請選取「Dockerfile」Dockerfile。來源位置:指出 Dockerfile 的位置和名稱。系統會使用這個目錄做為 Docker 建構作業的結構定義。所有路徑都應相對於目前目錄。
否則,請選取「Google Cloud Buildpacks」。使用 Buildpack 情境指定目錄,並使用 Entrypoint (選用) 提供啟動伺服器的指令。範例:
gunicorn -p :8080 main:app
適用於 Python,java -jar target/myjar.jar
適用於 Java。留空即可使用預設行為。
按一下 [儲存]。
確認所選設定。
按一下 [建立]。
請注意,系統會將您重新導向至「服務詳細資料」頁面,您可以在該頁面追蹤持續部署設定的進度。
完成所有步驟後,請注意其他選項:
- 編輯持續部署功能。
- 建構記錄。
- 在「修訂版本詳細資料」部分中輸入來源詳細資料。
現有服務
在服務清單中找出所需服務,然後按一下該服務。
按一下「設定持續部署」。
GitHub 是預設的存放區供應工具。如果尚未進行驗證,請按一下「Authenticate」(驗證),然後按照操作說明操作。您可以使用 Cloud Build GitHub 應用程式連結存放區。
點按「Next」。
在「Build Configuration」步驟中填入選項:
- Branch:指出執行觸發事件時應使用的來源。您可以在此處輸入規則。系統會自動驗證相符的分支,您可以在輸入內容下方看到這些分支。請注意,如果只符合一個分支,系統會在建立後自動執行觸發事件。
建構類型
如果您的存放區應使用 Docker 建構,且包含 Dockerfile,請選取「Dockerfile」Dockerfile。來源位置:指出 Dockerfile 的位置和名稱。系統會使用這個目錄做為 Docker 建構作業的結構定義。所有路徑都應相對於目前目錄。
否則,請選取「Google Cloud Buildpacks」。使用 Buildpack 情境指定目錄,並使用 Entrypoint (選用) 提供啟動伺服器的指令。範例:
gunicorn -p :8080 main:app
適用於 Python,java -jar target/myjar.jar
適用於 Java。留空即可使用預設行為。
按一下 [儲存]。
頁面會重新載入,並顯示持續部署設定的進度。
完成所有步驟後,請注意其他選項:
- 編輯持續部署功能。
- 建構記錄。
- 在「修訂版本詳細資料」部分中提供來源詳細資料。
手動設定持續部署
如果您需要使用手動程序,而非使用介面,請參閱「手動設定持續部署」。
將現有的 Cloud Build 觸發條件附加至 Cloud Run 服務。
如果您已建立 Cloud Build 觸發事件,可以將其附加至服務,並利用「Service Details」(服務詳細資料) 頁面中的 Google Cloud 主控台功能:編輯持續部署按鈕和建構歷史記錄圖表。
如要這麼做,請新增標籤,並將 gcb-trigger-id 做為鍵,將 Cloud Build 觸發事件的專屬 ID 做為值 (而非觸發事件名稱)。如要設定標籤,請參閱「設定或修改標籤」。