Cloud Builder

Cloud Build 构建器是装有常用语言和工具的容器映像。您可以配置 Cloud Build,以便在这些构建器的上下文中运行特定命令。

本页面介绍可与 Cloud Build 配合使用的构建器类型。

公共可用映像

通过 Cloud Build,您可以使用任何公共可用映像来执行任务。如需使用映像,请在配置文件的 name 字段中指定映像网址。使用 args 字段指定要在映像中运行的命令。构建步骤的 args 字段采用一系列参数,并将其传递给 name 字段引用的映像。

以下代码段展示如何使用来自 Docker Hub 的公共 ubuntu 映像并在该映像中执行命令:

steps:
- name: 'ubuntu'
  args: ['echo', 'hello world']

以下是另一个示例代码段,它使用 Google Cloud 控制台启动器中 Cloud Build 的 Black Duck 开源扫描程序的映像:

steps:
- name: launcher.gcr.io/blackduck-public/blackducksoftware-containerbuilder-scanner
  ...

有关如何使用来自 Docker Hub 的公共可用映像执行任务的更多示例,请参阅构建 Node.js 应用构建 Go 应用

Cloud Build 提供的受支持的构建器映像

Cloud Build 提供并维护您可以在配置文件中引用的预构建映像,以执行您的任务。您可以在以下位置找到这些预构建的映像:

gcr.io/cloud-builders/...

云端构建器 GitHub 代码库中提供了这些构建器的源代码。

有关如何使用受支持的预构建映像的示例,请参阅构建容器映像部署到 Cloud Run

下表列出了受支持的构建器映像的一些示例:

Builder 名称 示例
bazel gcr.io/cloud-builders/bazel bazel 示例
docker gcr.io/cloud-builders/docker docker 示例
git gcr.io/cloud-builders/git git 示例
gcloud gcr.io/cloud-builders/gcloud gcloud 示例
gke-deploy gcr.io/cloud-builders/gke-deploy gke-deploy 示例
gradle gcr.io/cloud-builders/gradle gradle 示例
maven gcr.io/cloud-builders/mvn maven 示例
Cloud Build 支持的构建器的完整列表。

社区提供的构建器

Cloud Build 开发者社区提供了可用于执行任务的开源构建器。这些构建器没有可用的预构建的映像;要使用这些构建器,请从云端构建器社区 GitHub 代码库中下载源代码,然后构建映像。有关如何构建社区提供的构建器并用其执行任务的示例,请参阅使用 Packer 构建虚拟机映像

下表列出了社区提供的构建器的一些示例:

Builder 说明
docker-compose 在 docker 映像上运行集成测试。
remote-builder 在可配置的 Compute Engine 虚拟机上执行构建步骤。
packer 使用 Packer 自动创建机器映像
helm 使用 Helm 管理 Kubernetes 软件包。
pack 使用指定的 Cloud Native Buildpack 执行构建步骤。
kaniko 使用 kaniko 执行构建步骤。
社区提供的 Cloud Build 构建器的完整列表。

社区提供的构建器由 Cloud Builder 社区的开源社区维护。Cloud Build 不会正式维护这些构建器。如需了解如何为构建器贡献代码,请参阅云端构建器社区 GitHub 页面。

编写自己的自定义构建器

您可以创建自己的自定义构建器以用于构建。自定义构建器是 Cloud Build 将其与您的来源一起提取和运行的容器映像。自定义构建器可以在容器内执行任何脚本或二进制文件;因此自定义构建器可以执行与容器相同的操作。有关创建自定义构建器的说明,请参阅创建自定义构建步骤

后续步骤