如果您在 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 的访问权限。
在构建配置步骤中,填写以下选项:
分支
- 指示在运行触发器时应使用哪个来源。您可以在此处输入regex。系统会自动验证匹配的分支:您可以在输入下方看到它们。请注意,如果只有一个分支匹配,则触发器将在创建后自动执行。
Build 类型
Dockerfile:如果您的代码库应使用 Docker 构建,并且其中包含 Dockerfile,请选择此选项。
- 在来源位置中,指定 Dockerfile 的位置和名称。此目录将用作 Docker 构建上下文。所有路径都应该相对于当前目录。
Go、Node.js、Python、Java、.NET Core、Ruby 或 PHP(通过 Google Cloud 的 buildpacks):如果您的代码库应使用 buildpacks 构建,请选择此选项。
- 在构建上下文目录中,指定相应目录。
- 在 Entrypoint(可选)中,提供启动服务器的命令。例如,
gunicorn -p :8080 main:app表示 Python,java -jar target/myjar.jar表示 Java。将此字段留空以使用默认行为。 - 在函数目标(仅适用于函数部署)中,输入要调用的函数。否则,请将此字段留空。
点击保存。
页面会重新加载,并返回到创建服务表单。
验证源代码库部分中的所选设置。
填写配置下的其余表单。
点击创建。
您将被重定向到服务详情页面,可以在其中跟踪“从代码库构建和部署”设置的进度。
完成所有步骤后,您可以:
- 在 Cloud Run 控制台中点击修改代码库设置,以在 Cloud Build 控制台中修改 Cloud 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 账号中授予权限并关联到代码库。您在 Web 浏览器中看到的提示取决于 GitHub 账号是否已安装 Cloud Run GitHub 应用。
在 Cloud Run 对话框中,完成以下步骤:
如果您看到 GitHub 账号列表,请完成以下步骤来安装应用并关联代码库:
选择您要使用的 GitHub 账号。
选择要授予访问权限的一个或多个代码库。
如果您看到有关重新使用现有应用安装的提示,请完成以下步骤,选择在何处配置应用:
点击 GitHub 账号,查看已安装 Google Cloud Run 应用的账号。如果您看到要使用的账号,请点击确认进行选择。
如果您没有看到要使用的账号,请执行以下操作:
选择在另一个 GitHub 账号中安装 GitHub 应用,然后点击确认。
按照 GitHub 步骤允许应用安装。
选择要授予访问权限的一个或多个代码库。
对话框关闭后,应用安装即完成。
GitLab
对于 GitLab 选项:
-
在 Personal Access Tokens 部分,输入您账号的令牌:
- API 访问令牌:输入具有
api范围的个人访问令牌。 - 读取 API 访问令牌:输入具有
read_api范围的个人访问令牌。
您有责任确保您的 GitLab 令牌保持有效。GitLab 令牌的最长生命周期为 365 天,除非令牌创建者或管理员另有规定。如需了解如何管理令牌过期设置和通知,请参阅有关个人访问令牌的 GitLab 文档。
如需了解详情,请参阅 GitLab 关于个人访问令牌过期的文档。
- API 访问令牌:输入具有
点击显示更多即可查看可选的配置设置。
- 可选:在加密部分中,选择一个 CMEK 密钥来加密 Cloud Run 创建的 Secret Manager Secret。
GitLab 企业版
对于 GitLab Enterprise Edition 选项:
对于主机网址,请输入要连接的主机的网址。
-
在 Personal Access Tokens 部分,输入您账号的令牌:
- 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。
点击连接。此过程可能需要几秒钟的时间。
在构建配置步骤中,填写以下选项:
分支
- 指示在运行触发器时应使用哪个来源。您可以在此处输入regex。系统会自动验证匹配的分支:您可以在输入下方看到它们。请注意,如果只有一个分支匹配,则触发器将在创建后自动执行。
Build 类型
Dockerfile:如果您的代码库应使用 Docker 构建,并且其中包含 Dockerfile,请选择此选项。
- 在来源位置中,指定 Dockerfile 的位置和名称。此目录将用作 Docker 构建上下文。所有路径都应该相对于当前目录。
Go、Node.js、Python、Java、.NET Core、Ruby 或 PHP(通过 Google Cloud 的 buildpacks):如果您的代码库应使用 buildpacks 构建,请选择此选项。
- 在构建上下文目录中,指定相应目录。
- 在 Entrypoint(可选)中,提供启动服务器的命令。例如,
gunicorn -p :8080 main:app适用于 Python,java -jar target/myjar.jar适用于 Java。将此字段留空以使用默认行为。 - 在函数目标(仅适用于函数部署)中,输入要调用的函数。否则,请将此字段留空。
点击保存。
填写配置下的其余表单。
完成服务配置后,请点击创建以将映像部署到 Cloud Run,然后等待部署完成。
点击显示的网址链接,以打开已部署服务的唯一、稳定的端点。