本页面介绍如何在 Cloud Build 中使用社区提供的构建器和自定义构建器。通过 Cloud Build 开发者社区提供 构建器 可用于执行任务。如果您要执行的任务需要用到现有映像未提供的功能,则可以构建自己的自定义映像并在构建步骤中使用。如需了解不同类型的构建器,请参阅 Cloud Builder。
如果您是刚接触 Cloud Build,请先阅读快速入门和构建配置概览。
使用社区提供的构建器
社区提供的构建器没有可用的预构建的映像;要在 Cloud Build 配置文件中使用这些构建器,您必须先构建映像并将其推送到项目中的 Container Registry。
如需使用社区提供的构建器,请执行以下操作:
构建和推送构建器:
导航到您的项目根目录。
克隆 cloud-builders-community 代码库:
git clone https://github.com/GoogleCloudPlatform/cloud-builders-community.git
导航到您要使用的构建器映像,其 中builder-name 是包含构建器的目录:
cd cloud-builders-community/builder-name
将构建器提交到您的项目:
gcloud builds submit .
导航回您的项目根目录:
cd ../..
从根目录中移除代码库:
rm -rf cloud-builders-community/
在 Cloud Build 配置文件中,在构建步骤中使用构建器:
YAML
steps: - name: 'gcr.io/project-id/builder-name' args: ['arg1', 'arg2', ...] ...
JSON
{ "steps": [ { "name": "gcr.io/project-id/builder-name", "args": [ "arg1", "arg2", ... ] ... } ] }
有关如何使用社区提供的构建器的示例,请参阅部署到 Firebase 和使用 Packer 构建虚拟机映像。
创建自定义构建器
如果您要执行的任务需要用到公共映像、受支持的构建器或社区提供的构建器未提供的功能,则可以构建自己的映像并在构建步骤中使用。
下面提供了一些您何时需要使用自定义构建器映像的示例:
- 从外部位置下载源代码或程序包。
- 使用外部工具链。
- 缓存任何必要的库。
- 预构建源代码(Cloud Build 仅负责在可能的情况下将构建封装到映像中)
与其他任何构建器一样,自定义构建器与装载于 /workspace
下方的源一起运行,并与 /workspace
中的某个工作目录一起运行。由给定构建步骤保留在 /workspace
中的任何文件都可用于其他构建步骤。
自定义构建器可以推送到您的构建服务账号有权访问的 Container Registry(托管在 gcr.io/$PROJECT-NAME/
上)中的代码库,也可以从该代码库中拉取自定义构建器。
以下步骤展示了如何使用示例 Dockerfile
创建和使用自定义构建器:
创建自定义构建器映像:
为自定义构建器创建
Dockerfile
。以下代码展示了一个示例Dockerfile
:FROM alpine RUN apk add curl CMD curl https://httpbin.org/ip -s > myip.txt; echo "*** My IP is: $(cat myip.txt)"
构建自定义构建器并将其推送到项目中的 Container Registry,并替换 project-id 和 image-name 的值:
gcloud builds submit --tag gcr.io/project-id/image-name
通过在构建步骤的
name
字段中指定构建器,可以在 Cloud Build 中使用自定义构建器映像:YAML
steps: - name: 'gcr.io/project-id/image-name' id: Determine IP of this build worker
JSON
{ "steps": [ { "name": "gcr.io/project-id/image-name", "id": "Determine IP of this build worker" } ] }
后续步骤
- 了解如何在构建步骤中运行 bash 脚本。
- 了解如何配置构建步骤顺序。
- 了解如何编写基本的构建配置文件。