使用快取圖片加快建構速度

您可以利用建構包快取映像檔,重複使用先前建構的結果。這可縮短使用 Google Cloud 的 Buildpacks 建構映像檔的整體時間長度,包括在 Cloud Build 等暫時性環境中建構映像檔的時間。

本指南的後續步驟將著重於使用 Cloud Build 進行遠端建構作業。如需本機建構作業,請參閱快取映像檔操作說明和 pack 指令參考資料頁面。

使用 Cloud Build 快取映像檔

您必須建立建構設定檔 (例如 cloudbuild.yaml),才能在 Cloud Build 中啟用 Buildpacks 快取映像檔。您的建構設定檔會指示 pack CLI 將建構映像檔發布至指定的遠端存放區。這個建構映像檔接著會用於後續建構的「快取映像檔」。

請注意,您使用新的建構設定檔執行的第一個建構作業會使用 pack 指令建立,然後將初始建構映像檔快取推送至存放區。只有在初始快取映像檔可供建構時,您才會看到建構效能改善情形。

建立建構設定檔

如要定義 Cloud Build 設定檔,您必須編寫 YAML 檔案,並在其中加入使用 pack CLI 建立映像檔的建構步驟。

在以下範例 cloudbuild.yaml 中,建構作業會使用 Buildpacks 為應用程式或函式建立映像檔,並建立初始建構快取映像檔,然後將其推送至存放區:

options:
  logging: CLOUD_LOGGING_ONLY
  pool: {}
projectId: PROJECT_ID
steps:
- name: gcr.io/k8s-skaffold/pack
  entrypoint: pack
  args:
  - build
  - LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/IMAGE_NAME
  - --builder
  - gcr.io/buildpacks/builder:latest
  - --cache-image
  - LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/CACHE_IMAGE_NAME:latest
  - --publish 

取代:

  • LOCATION 與容器存放區的區域名稱。示例:us-west2
  • PROJECT_ID 替換為您的 Google Cloud 專案 ID。
  • REPO_NAME 替換為 Docker 存放區的名稱。
  • IMAGE_NAME 改為應用程式或函式容器映像檔的名稱。
  • CACHE_IMAGE_NAME 改為您的建構快取映像檔名稱。

您也可以參閱 pack build 指令參考資料,瞭解您可以在建構設定檔中定義的其他支援的引數。

使用快取映像檔在遠端建構

如要執行建構作業,請加入 --config 指令標記並指定設定檔。舉例來說,如要使用名為 cloudbuild.yaml 的檔案,您可以執行以下指令:

gcloud builds submit --config cloudbuild.yaml --pack image=example-docker.pkg.dev/my-project-id/repo/example-image

如要進一步瞭解遠端建構作業,請參閱「建構應用程式」或「建構函式」。