本文档介绍如何在专用池中运行构建。如果您是第一次使用专用池,请参阅专用池概览。
准备工作
确保您已按照创建和管理专用池中的步骤创建专用池。
如需使用本指南中的命令行示例,请安装并配置 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 角色授予您创建构建的工作器池项目中的触发器项目的 Cloud Build 服务账户:
控制台
在 Google Cloud 控制台中打开 IAM 页面。
在页面顶部的项目选择器下拉菜单中,选择包含您的专用池的项目。
点击授予使用权限。
输入以下主账号和角色设置:
添加主帐号:输入包含构建触发器的项目的默认 Cloud Build 服务帐号电子邮件地址。您可以按照以下步骤获取此电子邮件地址:
- 打开 IAM 页面。
- 选择包含构建触发器的项目。
- 在权限表中,找到以
@cloudbuild.gserviceaccount.com
结尾的电子邮件地址。这是您的 Cloud Build 服务账号。
分配角色:选择 Cloud Build WorkerPool User 角色。
点击保存以保存新的 IAM 权限。
gcloud
要将触发器项目中的默认 Cloud Build 服务帐号添加到使用 cloudbuild.workerPoolUser 角色的工作器池项目,请执行以下操作:
gcloud projects add-iam-policy-binding PRIVATEPOOL_PROJECT_ID \ --member=serviceAccount:TRIGGER_PROJECT_NUMBER@cloudbuild.gserviceaccount.com \ --role=roles/cloudbuild.workerPoolUser
将上述命令中的占位值替换为以下内容:
PRIVATEPOOL_PROJECT_ID
是运行构建的专用池的项目 ID。TRIGGER_PROJECT_NUMBER
是含有执行构建的触发器的项目的项目编号。
运行构建
您可以从创建专用池的同一 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 项目。REGION
:创建了专用池的区域。
后续步骤
- 了解如何创建和管理专用池。
- 了解如何将 VPC Service Controls 与专用池搭配使用。
- 了解如何创建和管理构建触发器。
- 了解如何从 GitHub Enterprise 构建代码库。
- 了解如何从 Bitbucket Server 构建代码库。