使用缓存映像加速构建

您可以利用 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

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