Cloud Build 是一項服務,可在 Google Cloud執行建構作業。
Cloud Build 可從各種存放區或 Cloud Storage 匯入原始碼、依據您的規格執行建構,並產生 Docker 容器或 Java 封存檔案等成果。 您也可以使用 Cloud Build 保護軟體供應鏈。Cloud Build 功能符合軟體構件供應鏈級別 (SLSA) 第 3 級的要求。如需保護建構程序的指引,請參閱「保護建構程序」。建構設定與建構步驟
您可以撰寫建構設定,為 Cloud Build 提供執行工作的操作說明。您可以設定建構以擷取依附元件,執行單元測試、靜態分析和整合測試,並使用 docker、gradle、maven、bazel 與 gulp 等建構工具建立成果。
Cloud Build 會以一系列建構步驟執行建構,而每個建構步驟都會在 Docker 容器中執行。執行建構步驟類似於執行指令碼中的指令。
您可以使用 Cloud Build 與 Cloud Build 社群提供的建構步驟,也可以撰寫自己的自訂建構步驟:
- Cloud Build 提供的建構步驟:Cloud Build 針對常見語言和工作發布了一組支援的開放原始碼建構步驟。
- 社群提供的建構步驟:Cloud Build 使用者社群提供了開放原始碼建構步驟。
- 自訂建構步驟:您可以 建立自己的建構步驟,以便在建構中使用。
每個建構步驟都會在其容器連接至名為 cloudbuild 的本機 Docker 網路之後執行。如此一來,建構步驟就可以彼此通訊並共用資料。如要進一步瞭解 cloudbuild 網路,請參閱「Cloud Build 網路」。
您可以在 Cloud Build 中使用標準 Docker Hub 映像檔,例如 Ubuntu 和 Gradle。
啟動建構
您可以使用 Google Cloud CLI 或 Cloud Build API,在 Cloud Build 中手動啟動建構作業,也可以使用 Cloud Build 的建構觸發條件,建立自動化持續整合/持續推送軟體更新 (CI/CD) 工作流程,在程式碼變更時啟動新的建構作業。 您可以將建構觸發條件與許多程式碼存放區整合,包括 Cloud Source Repositories、GitHub 與 Bitbucket。查看建構結果
您可以使用 gcloud CLI、Cloud Build API 查看建構結果,或使用Google Cloud 控制台中 Cloud Build 區段的「建構記錄」頁面查看結果,該頁面會顯示 Cloud Build 執行的每一次建構的詳細資料和記錄。如需操作說明,請參閱「查看建構結果」。
建構的運作方式
下列步驟大致說明 Cloud Build 建構的生命週期:
- 準備應用程式程式碼與任何所需資產。
- 建立 YAML 或 JSON 格式的建構設定檔,其中包含 Cloud Build 的操作說明。
- 將建構提交至 Cloud Build。
- Cloud Build 會根據您提供的建構設定執行建構。
- 如果適用,系統會將所有建構的構件推送至 Artifact Registry。
Docker
Cloud Build 會使用 Docker 執行建構作業。對於每個建構步驟,Cloud Build 都會執行 Docker 容器做為 docker run 的執行個體。目前 Cloud Build 執行的 Docker 引擎版本為 20.10.24。
Cloud Build 介面
您可以將 Cloud Build 與 Google Cloud 主控台、gcloud指令列工具或 Cloud Build 的 REST API 搭配使用。
您可以使用 gcloud CLI 建立及管理建構。您可以執行指令,以執行提交建構、列出建構和取消建構等工作。
您可以使用 Cloud Build REST API 要求建構。
與其他 Cloud Platform API 一樣,您必須使用 OAuth2 授予存取權。授予存取權之後,您可以使用 API 啟動新建構、查看建構狀態與詳細資料、列出每個專案的建構,以及取消目前正在處理的建構。
詳情請參閱 API 說明文件。
預設集區和私人集區
根據預設,在 Cloud Build 上執行建構作業時,建構作業會在安全的託管環境中執行,並存取公開網際網路。每項建構作業都會在專屬的工作站上執行,並與其他工作負載隔離。您可以透過多種方式自訂建構作業,包括增加機型的大小或分配更多磁碟空間。預設集區的環境自訂程度有限,特別是私人網路存取權方面。
私人集區是專屬的私人工作站集區,可提供更完善的建構環境自訂功能,包括存取私人網路中資源的能力。私人集區與預設集區類似,都是由 Cloud Build 代管及全面管理,且可擴充及縮減至零,完全不需設定、升級或擴充基礎架構。由於私人集區是專為客戶提供的資源,因此您可以透過更多方式進行設定。如要進一步瞭解私人集區,以及預設集區和私人集區的功能差異,請參閱私人集區總覽。
建立安全防護
Cloud Build 提供多項功能來確保建構作業安全無虞,包括:
-
自動建構
自動建構或指令碼建構會在建構指令碼或建構設定中定義所有建構步驟,包括擷取原始碼的步驟和建構程式碼的步驟。唯一的手動指令 (如有) 是執行建構作業的指令。Cloud Build 會使用建構設定檔,向 Cloud Build 提供建構步驟。
自動建構可確保建構步驟的一致性。不過,在一致的受信任環境中執行建構作業也很重要。
雖然本機建構作業可用於偵錯,但從本機建構作業發布軟體可能會在建構程序中產生許多安全性問題、不一致和效率低落的情況。
- 允許本機建構會讓有惡意的攻擊者修改建構程序。