本文档介绍如何在专用池中运行构建。如果您是第一次使用专用池,请参阅专用池概览。
准备工作
确保您已按照创建和管理专用池中的步骤创建专用池。
如需使用本指南中的命令行示例,请安装并配置 Google Cloud CLI。
您可以使用同一个 Google Cloud 项目来创建 使用专用池和 Cloud Build 构建 项目。如果构建和专用池位于不同的项目中,请在 gcloud CLI 中将默认项目设置为构建源自的项目:
gcloud config set project BUILD_ORIGIN_PROJECT_ID
IAM 权限
如需通过 gcloud CLI 或 Cloud Build API 运行构建,请授予 向用户或服务授予专用池项目中的 WorkerPool User 角色 请求构建的账号。
如需使用触发器运行自动构建,请执行以下操作:
- 如果要启动构建的项目就是您的专用池所在的项目,则您无需授予任何权限。
如果您启动构建的项目不同于 如果有,请将 WorkerPool User 角色分配给您在 创建构建的工作器池项目:
控制台
在 Google Cloud 控制台中打开 IAM 页面。
在页面顶部的项目选择器下拉菜单中,选择包含您的专用池的项目。
点击授予访问权限。
输入以下主账号和角色设置:
添加主账号:输入您要与触发器搭配使用的服务账号的电子邮件地址。
分配角色:选择 Cloud Build WorkerPool User 角色。
点击保存以保存新的 IAM 权限。
gcloud
从触发器添加 build 服务账号 项目导出到具有 cloudbuild.workerPoolUser 角色的工作器池项目:
gcloud projects add-iam-policy-binding PRIVATEPOOL_PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT \ --role=roles/cloudbuild.workerPoolUser
将上述命令中的占位值替换为以下内容:
PRIVATEPOOL_PROJECT_ID
是运行构建的专用池的项目 ID。SERVICE_ACCOUNT
是您要与执行构建的触发器搭配使用的服务账号的电子邮件地址。
运行构建
您可以从创建专用池的 Google Cloud 项目或从其他 Google Cloud 项目提交构建。您可以在构建配置文件中指定专用池,也可以在 gcloud
命令中直接指定:
在构建配置文件中指定专用池:
在 Cloud Build 配置文件中,添加
pool
选项并指定用于运行构建的专用池的完整资源名称:YAML
steps: - name: 'bash' args: ['echo', 'I am running in a private pool!'] options: pool: name: 'projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID'
JSON
{ "steps": [ { "name": "bash", "args": [ "echo", "I am running in a private pool!" ] } ], "options": { "pool" : { "name" : "projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID" } } }
将上述配置文件中的占位符值替换为以下内容:
PRIVATEPOOL_PROJECT_ID
:专用池所在的 Google Cloud 项目。REGION
:创建了专用池的区域。PRIVATEPOOL_ID
:您在创建专用池时指定的唯一专用池 ID。
使用上面创建的构建配置文件通过
gcloud
或 API 或使用触发器运行构建。 如果您的实例托管在本地,则 Cloud Build 还会为多个外部源代码管理系统(例如 GitHub Enterprise 或 Bitbucket Server)提供触发器功能支持。
在 gcloud 命令中指定专用池:
您可以在 gcloud
命令(而不是构建配置文件)中指定专用池。例如,假设您有以下构建配置文件:
YAML
steps:
- name: 'bash'
args: ['echo', 'I am running in a private pool!']
JSON
{
"steps": [
{
"name": "bash",
"args": [
"echo",
"I am running in a private pool!"
]
}
],
}
以下命令使用构建配置文件进行构建,并在该命令中指定工作器池:
gcloud builds submit --config=CONFIG_FILE
--worker-pool=projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID
将上述命令中的占位值替换为以下内容:
CONFIG_FILE
:构建配置文件的路径。PRIVATEPOOL_ID
:您在创建专用池时指定的唯一专用池 ID。PRIVATEPOOL_PROJECT_ID
:您的 Google Cloud Storage 存储分区 专用池的 IP 地址REGION
:创建了专用池的区域。
后续步骤
- 了解如何创建和管理专用池。
- 了解如何将 VPC Service Controls 与专用池搭配使用。
- 了解如何创建和管理构建触发器。
- 了解如何从 GitHub Enterprise 构建代码库。
- 了解如何从 Bitbucket Server 构建代码库。