如果您在 Git 代码库中有源代码或函数,并且想要自动执行构建并从代码库设置持续部署,则可以在 Cloud Run 控制台中使用 Cloud Build 或 Developer Connect。
设置完成后,Cloud Run 会使用 Cloud Build 触发器,每次在您将新提交的代码推送到 Git 代码库的指定分支时,自动构建和部署代码。在部署到 Cloud Run 后, Google Cloud 控制台中会显示服务的源代码库信息。
在 Cloud Run 控制台中:
如果您选择 Cloud Build,则可以设置从 GitHub 进行持续部署。如需查看示例,请参阅创建模板仓库并从 Git 持续部署的快速入门。
如果您选择 Developer Connect(预览版),则可以设置从 GitHub、GitLab 和 Bitbucket 仓库进行持续部署。
或者,您也可以使用 Cloud Deploy 设置持续交付流水线,以将 Cloud Run 服务部署到多个环境中。
准备工作
- 您拥有包含
Dockerfile的 Git 代码库,或者您的代码库采用 Google Cloud 的 Buildpack 支持的语言之一编写。 -
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. 如果您选择 Developer Connect 选项(预览版),请启用 Developer Connect API:
所需的角色
如需获得使用 Cloud Build 或 Developer Connect 从 Git 部署 Cloud Run 服务所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
-
Artifact Registry Administrator (
roles/artifactregistry.admin) -
Cloud Build Editor (
roles/cloudbuild.builds.editor) -
Cloud Run Developer (
roles/run.developer) -
Service Account User (
roles/iam.serviceAccountUser) -
Service Usage Admin (
roles/serviceusage.serviceUsageAdmin)
运行构建的服务账号必须拥有以下角色:
- Cloud Build 服务账号 (
roles/cloudbuild.builds.builder) - Cloud Run Admin (
roles/run.admin) - Service Account User (
roles/iam.serviceAccountUser) - 如果您选择 Developer Connect 选项(预览版):
- Developer Connect Read Token Accessor (
roles/developerconnect.readTokenAccessor) - 如果您要连接到 GitLab 或 Bitbucket 仓库:Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor)
- Developer Connect Read Token Accessor (
如需查看与 Cloud Run 关联的 IAM 角色和权限的列表,请参阅 Cloud Run IAM 角色和 Cloud Run IAM 权限。如果您的 Cloud Run 服务与Google Cloud API(例如 Cloud 客户端库)进行交互,请参阅服务身份配置指南。如需详细了解如何授予角色,请参阅部署权限和管理访问权限。
通过 Cloud Run 控制台设置持续部署
根据您是在新服务上还是在现有服务上设置持续部署,设置过程略有不同。请点击相应标签页以了解详情。
新服务
在 Google Cloud 控制台中,前往 Cloud Run 页面。
如果您要创建新服务,请点击连接仓库以显示创建服务表单。
如果您要修改现有服务,请在服务列表中找到该服务,然后点击该服务。点击连接到仓库。
选择 Cloud Build 或 Developer Connect。
如果您选择了 Cloud Build,请参阅使用 Cloud Build 进行设置。
如果您选择了 Developer Connect,请参阅使用 Developer Connect 进行设置。
现有服务
在 Google Cloud 控制台中,前往 Cloud Run 页面。
在服务列表中找到服务,然后点击该服务。
点击连接到仓库,然后按照使用 Cloud Build 进行设置中的说明操作。
设置 Cloud Build
在使用 Cloud Build 进行设置窗格中:
从列表中选择一个仓库。请注意,加载仓库列表需要一些时间。请按照提示操作,然后点击下一步。
GitHub 是默认代码库提供方。如果您尚未进行身份验证,请点击身份验证,然后按照说明操作。使用 Cloud Build GitHub 应用连接仓库已完成。
如果您找不到自己的仓库,请点击管理已连接的仓库链接。按照说明授予仓库对 Cloud Build 的访问权限。
在 Build 配置步骤中,填写以下选项:
分支
- 指示在运行触发器时应使用哪个来源。您可以在此处输入正则表达式。系统会自动验证匹配的分支:您可以在输入下方看到它们。请注意,如果只有一个分支匹配,则触发器将在创建后自动执行。
Build 类型
Dockerfile:如果仓库应使用 Docker 构建,并且其中包含 Dockerfile,请选择此选项。
- 在来源位置中,指定 Dockerfile 的位置和名称。此目录将用作 Docker 构建上下文。所有路径都应该相对于当前目录。
Go、Node.js、Python、Java、.NET Core、Ruby 或 PHP(通过 Google Cloud 的 Buildpack):如果仓库应使用 Buildpack 进行构建,请选择此选项。
- 在构建上下文目录中,指定相应目录。
- 在入口点(可选)中,提供启动服务器的命令。例如,
gunicorn -p :8080 main:app(对于 Python)和java -jar target/myjar.jar(对于 Java)。将此字段留空以使用默认行为。 - 在函数目标(仅适用于函数部署)中,输入要调用的函数。否则,请将此字段留空。
点击保存。
页面会重新加载,然后您会返回到‘“创建服务”表单。
验证源仓库部分中的所选设置。
在配置下填写表单的其余部分。
点击创建。
您会被重定向到“服务详情”页面,可以在其中跟踪“从仓库构建和部署”设置的进度。
完成所有步骤后,您可以:
- 在 Cloud Run 控制台中点击修改仓库设置,以在 Cloud Build 控制台中修改 Cloud Build 触发器。
- 通过点击从仓库构建和部署步骤中的日志链接,查看 Build 历史记录。
- 在“修订版本详细信息”部分中查看来源详细信息。
手动设置持续部署
如果您需要使用手动过程,而不是使用界面,请参阅手动设置持续部署。
将现有 Cloud Build 触发器关联到 Cloud Run 服务
如果您已有 Cloud Build 触发器,则可以通过向 Cloud Run 服务添加标签来将其关联到服务。
如需在 Cloud Run 控制台中添加标签,请执行以下操作:
在 Google Cloud 控制台中,前往 Cloud Run 页面。
选择您的服务。
对于所选服务,点击页面顶部的标签以打开标签窗格。
添加一个标签,并使用 gcb-trigger-id 作为键,使用 Cloud Build 触发器的唯一标识符(不是触发器名称)作为值。如果 gcb-trigger-id 键已存在,请修改该值。如需了解如何设置标签,请参阅设置或修改标签。
设置 Developer Connect
在使用 Developer Connect 进行设置窗格中,执行以下操作:
选择一个仓库,然后点击下一步。
如果您没有看到要选择的仓库,请点击关联新仓库,打开通过 Developer Connect 关联新仓库窗格。点击相应标签页,详细了解如何连接到某个源代码管理提供方。
GitHub
对于 GitHub、GitHub Enterprise Cloud 和 GitHub Enterprise 选项,请点击连接。
如果您没有看到对话框,请关闭所有弹出式窗口拦截浏览器插件,并确保浏览器设置允许弹出式窗口。例如,在 Chrome 中,请按照说明允许弹出式窗口。
按照以下说明,授予您的 GitHub 账号的权限并关联到仓库。您在网络浏览器中看到的提示取决于 GitHub 账号是否已安装 Cloud Run GitHub 应用。
在 Cloud Run 对话框中,完成以下步骤:
如果您看到 GitHub 账号列表,请完成以下步骤来安装应用并关联仓库:
选择您要使用的 GitHub 账号。
选择要授予访问权限的一个或多个仓库。
如果您看到重复使用现有应用安装的提示,请完成以下步骤,选择要在何处配置应用:
点击 GitHub 账号,查看已安装 Google Cloud Run 应用的账号。如果您看到要使用的账号,请点击确认进行选择。
如果您没有看到要使用的账号,请执行以下操作:
选择在另一个 GitHub 账号中安装 GitHub 应用,然后点击确认。
按照 GitHub 步骤允许安装应用。
选择要授予访问权限的一个或多个仓库。
对话框关闭后,应用安装即完成。
GitLab
对于 GitLab 选项:
-
在个人访问令牌部分中,输入您的账号的令牌:
- API 访问令牌:输入具有
api范围的个人访问令牌。 - 读取 API 访问令牌:输入具有
read_api范围的个人访问令牌。
您有责任确保您的 GitLab 令牌一直有效。GitLab 令牌的最长生命周期为 365 天,除非令牌创建者或管理员另有指定。如需了解如何管理令牌过期设置和通知,请参阅有关个人访问令牌的 GitLab 文档。
如需了解详情,请参阅 GitLab 有关个人访问令牌过期的文档。
- API 访问令牌:输入具有
点击显示更多以查看可选配置设置。
- 可选:在加密部分中,选择一个 CMEK 密钥来加密 Cloud Run 创建的 Secret Manager Secret。
GitLab 企业版
对于 GitLab Enterprise Edition 选项:
在主机网址字段中,输入要连接到的主机的网址。
-
在个人访问令牌部分中,输入您的账号的令牌:
- API 访问令牌:输入具有
api范围的个人访问令牌。 - 读取 API 访问令牌:输入具有
read_api范围的个人访问令牌。
您有责任确保您的 GitLab 令牌一直有效。GitLab 令牌的最长生命周期为 365 天,除非令牌创建者或管理员另有指定。如需了解如何管理令牌过期设置和通知,请参阅 GitLab 有关个人访问令牌的文档。
如需了解详情,请参阅 GitLab 有关个人访问令牌过期的文档。
- API 访问令牌:输入具有
点击显示更多以查看可选配置设置。
- 可选:在加密部分中,选择一个 CMEK 密钥来加密 Cloud Run 创建的 Secret Manager Secret。
Bitbucket
对于 Bitbucket Cloud 选项:
在工作区字段中,输入您的 Bitbucket Cloud 工作区 ID。
在访问令牌部分中,输入您的 Bitbucket 访问令牌:
点击显示更多以查看可选配置设置。
- 可选:在加密部分中,选择一个 CMEK 密钥来加密 Cloud Run 创建的 Secret Manager Secret。
Bitbucket 数据中心
对于 Bitbucket 数据中心选项:
在主机网址字段中,输入要连接到的 Bitbucket 数据中心主机的网址。
在访问令牌部分中,输入您的 Bitbucket Cloud 访问令牌:
管理员访问令牌:输入具有仓库管理员范围访问权限的令牌。
读取访问令牌:输入具有仓库读取范围访问权限的令牌。
点击显示更多以查看可选配置设置。
- 可选:在加密部分中,选择一个 CMEK 密钥来加密 Cloud Run 创建的 Secret Manager Secret。
点击连接。此过程可能需要几秒钟时间。
在 Build 配置步骤中,填写以下选项:
分支
- 指示在运行触发器时应使用哪个来源。您可以在此处输入正则表达式。系统会自动验证匹配的分支:您可以在输入下方看到它们。请注意,如果只有一个分支匹配,则触发器将在创建后自动执行。
Build 类型
Dockerfile:如果仓库应使用 Docker 构建,并且其中包含 Dockerfile,请选择此选项。
- 在来源位置中,指定 Dockerfile 的位置和名称。此目录将用作 Docker 构建上下文。所有路径都应该相对于当前目录。
Go、Node.js、Python、Java、.NET Core、Ruby 或 PHP(通过 Google Cloud 的 Buildpack):如果仓库应使用 Buildpack 进行构建,请选择此选项。
- 在构建上下文目录中,指定相应目录。
- 在入口点(可选)中,提供启动服务器的命令。例如,
gunicorn -p :8080 main:app(对于 Python)和java -jar target/myjar.jar(对于 Java)。将此字段留空以使用默认行为。 - 在函数目标(仅适用于函数部署)中,输入要调用的函数。否则,请将此字段留空。
点击保存。
在配置下填写表单的其余部分。
完成服务配置后,请点击创建以将映像部署到 Cloud Run,然后等待部署完成。
点击显示的网址链接,以打开已部署服务的唯一、稳定的端点。