本页面介绍如何创建可用于在 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 中。如需了解如何执行此操作,请参阅存储映像和工件。
后续步骤
- 了解如何使用构建配置文件手动和通过触发器运行构建。
- 了解如何编写用于添加依赖项以及构建、测试和部署工件的构建配置。