本页面介绍如何创建可用于在 Cloud Build 上启动构建的构建配置文件。
构建配置文件定义 Cloud Build 执行任务所需的字段。如果您使用 gcloud 命令行工具或构建触发器启动构建,则需要构建配置文件。您可以使用 YAML 或 JSON 语法编写构建配置文件。
准备工作
阅读构建配置概览,了解可以包含在构建配置文件中的字段。
创建构建配置
以下步骤说明如何创建基础的构建配置文件。配置文件中的每个字段定义一部分您要执行的任务。构建配置文件中唯一的必填字段是步骤的 name 字段。所有其他字段都是选填字段。
YAML
- 创建构建配置文件。在项目根目录中,创建名为 - cloudbuild.yaml的文件。这是您的 Cloud Build 构建配置文件。
- 添加步骤字段。构建配置文件中的 - steps部分包含您希望 Cloud Build 执行的构建步骤。- steps:
- 添加第一个步骤。在 - steps:下,添加- name字段并将其指向容器映像以执行您的任务。Cloud Build 及其开发者社区提供多个安装有常用工具和语言的容器映像。您可以在构建步骤中使用任何此类映像(又称为 Cloud Builder)或任何公开提供的映像。如需了解可在构建步骤中使用的不同类型的容器映像,请参阅 Cloud Build 构建器。- 以下代码段显示的是带有 - docker构建器- gcr.io/cloud-builders/docker的构建步骤,该构建器是运行 Docker 的容器映像。- steps: - name: 'gcr.io/cloud-builders/docker'
- 添加步骤参数。步骤的 - args字段采用一个参数列表,并将它们传递给- name字段引用的构建器。如果- name字段中的构建器具有入口点,列表中的- args将用于访问该入口点。如果- name字段中的构建器没有入口点,则- args中的第一个元素将用作入口点。- 在以下示例中: - build是 Docker Cloud Build 构建器的入口点。
- -t是 Docker 标记。
- us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image是要在 Artifact Registry 中构建的映像的名称。构建步骤使用默认替换作为项目 ID,因此该值会在构建时自动替换。
- .是源代码的位置,表示源代码位于当前工作目录中。- steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image', '.']
 
- 添加更多步骤。通过添加其他 - name字段并将其指向 Cloud Build 构建器,您可以向构建配置文件添加任意数量的构建步骤。- 以下代码段向构建配置文件中加入两个新增步骤: - Docker 构建步骤,用于调用 docker push命令,将上一步中的映像构建推送到 Artifact Registry。
- Google Cloud SDK 命令的构建步骤,指定了 - gcloud入口点,该步骤通过 Artifact Registry 中的容器映像创建 Compute Engine 实例。它还添加了- env字段,用于指定 Compute Engine 地区和区域。- - name: 'gcr.io/cloud-builders/docker' args: ['push', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'gcloud' args: ['compute', 'instances', 'create-with-container', 'my-vm-name', '--container-image', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] env: - 'CLOUDSDK_COMPUTE_REGION=us-central1' - 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
 
- Docker 构建步骤,用于调用 
- 添加其他构建配置字段。您可以添加 - machineType、- tags或- timeout等字段来进一步配置构建。如需查看可以在构建配置文件中添加的字段的完整列表,请参阅构建配置概览。- 在以下示例中, - gcr.io/google.com/cloudsdktool/cloud-sdk构建步骤会在 240 秒后超时。- - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'gcloud' timeout: 240s args: ['compute', 'instances', 'create-with-container', 'my-vm-name', '--container-image', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] env: - 'CLOUDSDK_COMPUTE_REGION=us-central1' - 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'- 如需查看基本构建配置文件的完整示例,请参阅以下代码段: - 在此示例中,容器映像存储在 Artifact Registry 中。如果构建生成任何非容器工件,则可以使用 - artifacts字段将其存储在 Cloud Storage 中。如需了解如何执行此操作,请参阅存储映像和工件。
JSON
- 创建构建配置文件。在项目根目录中,创建名为 - cloudbuild.json的文件。这是您的 Cloud Build 构建配置文件。
- 添加步骤字段。构建配置文件中的 - steps部分包含您希望 Cloud Build 执行的构建步骤。- { "steps": }
- 添加第一个步骤。在 - steps:下,添加- name字段并将其指向容器映像以执行您的任务。Cloud Build 及其开发者社区提供多个安装有常用工具和语言的容器映像。您可以在构建步骤中使用任何此类映像(又称为 Cloud Builder)或任何公开提供的映像。如需了解可在构建步骤中使用的不同类型的容器映像,请参阅 Cloud Build 构建器。- 以下代码段显示的是带有 - docker构建器- gcr.io/cloud-builders/docker的构建步骤,该构建器是运行 Docker 的容器映像。- { "steps": [ { "name": "gcr.io/cloud-builders/docker" } ] }
- 添加步骤参数。步骤的 - args字段采用一个参数列表,并将它们传递给- name字段引用的构建器。如果- name字段中的构建器具有入口点,列表中的- args将用于访问该入口点。如果- name字段中的构建器没有入口点,则- args中的第一个元素将用作入口点。- 在以下示例中: - build是 Docker Cloud Build 构建器的入口点。
- -t是 Docker 标记。
- us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image是要在 Artifact Registry 中构建的映像的名称。构建步骤使用默认替换作为项目 ID,因此该值会在构建时自动替换。
- .是源代码的位置,表示源代码位于当前工作目录中。- { "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage", "." ] } ] }
 
- 添加更多步骤。通过添加其他 - name字段并将其指向 Cloud Build 构建器,您可以向构建配置文件添加任意数量的构建步骤。- 以下代码段向构建配置文件中加入两个新增步骤: - Docker 构建步骤,用于调用 docker push命令,将上一步中的映像构建推送到 Artifact Registry。
- Google Cloud SDK 命令的构建步骤,指定了 - gcloud入口点,该步骤通过 Artifact Registry 中的容器映像创建 Compute Engine 实例。它还添加了- env字段,用于指定 Compute Engine 地区和区域。- { "name": "gcr.io/cloud-builders/docker", "args": [ "push", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ] }, { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "gcloud", "args": [ "compute", "instances", "create-with-container", "my-vm-name", "--container-image", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ], "env": [ "CLOUDSDK_COMPUTE_REGION=us-central1", "CLOUDSDK_COMPUTE_ZONE=us-central1-a" ] }
 
- Docker 构建步骤,用于调用 
- 添加其他构建配置字段。您可以添加 - machineType、- tags或- timeout等字段来进一步配置构建。如需查看可以在构建配置文件中添加的字段的完整列表,请参阅构建配置概览。- 在以下示例中, - gcr.io/google.com/cloudsdktool/cloud-sdk构建步骤会在 240 秒后超时。- { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "gcloud", "timeout": "240s", "args": [ "compute", "instances", "create-with-container", "my-vm-name", "--container-image", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ], "env": [ "CLOUDSDK_COMPUTE_REGION=us-central1", "CLOUDSDK_COMPUTE_ZONE=us-central1-a" ] }- 如需查看基本构建配置文件的完整示例,请参阅以下代码段: - 在此示例中,容器映像存储在 Artifact Registry 中。如果构建生成任何非容器工件,则可以使用 - artifacts字段将其存储在 Cloud Storage 中。如需了解如何执行此操作,请参阅存储映像和工件。
后续步骤
- 了解如何使用构建配置文件手动和通过触发器运行构建。
- 了解如何编写用于添加依赖项以及构建、测试和部署工件的构建配置。