使用缓存映像加速构建

您可以利用 buildpack 缓存映像来重复使用先前构建的结果。这样可缩短使用 Google Cloud 的 Buildpack 构建映像的整个时间,包括在 Cloud Build 等临时环境中构建映像时。

本指南中的以下步骤重点介绍使用 Cloud Build 的远程构建。对于本地构建,请参阅缓存映像说明和 pack 命令参考文档页面。

将缓存映像与 Cloud Build 结合使用

您必须创建构建配置文件(例如 cloudbuild.yaml),才能在 Cloud Build 中启用 Buildpack 缓存映像。构建配置文件会指示 pack CLI 将构建映像发布到指定的远程代码库。然后,此构建映像会用作后续构建的“缓存映像”。

请注意,使用新构建配置文件运行的第一个构建使用 pack 命令来创建初始构建映像缓存,然后将其推送到您的代码库。只有在初始缓存映像可用于构建后,您才能看到构建性能提升。

创建构建配置文件

如需定义 Cloud Build 配置文件,您必须编写 YAML 文件,其中包含使用 pack CLI 创建映像的构建步骤。

在以下示例 cloudbuild.yaml 中,构建使用 buildpack 为应用或函数创建映像,创建初始构建缓存映像,并将其推送到代码库:

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

如需详细了解远程构建,请参阅构建应用构建函数