您可以使用 Cloud Build 自动构建代码并将其部署到 Knative serving,方法是:使用 Cloud Build 触发器在您将新的代码提交并推送到 Git 代码库的指定分支时,自动构建和部署您的代码。
使用 Cloud Build 触发器构建容器时,在部署到 Knative serving 后,Google Cloud 控制台中会显示服务的源代码库信息。
准备工作
- 您拥有包含
Dockerfile
的 git 代码库,或者您的代码库采用 Google Cloud 的 buildpacks 支持的语言之一编写:Go、Node.js、Python、Java 或 .NET Core。 -
Enable the Cloud Build and Cloud Source Repositories APIs.
通过 Knative serving 界面设置持续部署
根据您是在新服务上还是在现有服务上设置持续部署,此过程略有不同。请点击相应标签页以了解详情。
新服务
前往 Google Cloud 控制台中的 Knative serving:
点击创建服务。
使用您的偏好设置填写“服务设置”。
点击下一步。
选择从源代码库持续部署新修订版本 (Continuously deploy new revisions from a source repository)。
点击设置 Cloud Build。
选择提供商和代码库。
- GitHub - 如果您尚未进行身份验证,请点击身份验证并按照说明操作。默认情况下,通过 Cloud Build GitHub 应用来完成代码库连接。或者,您也可以在 Cloud Source Repositories 中镜像 GitHub 代码库。为此,请点击“高级选项”并选中“使用 Cloud Source Repositories 代码库镜像 GitHub 代码库” 了解详情
- Bitbucket - 如果您尚未进行身份验证,请点击身份验证并按照说明操作。
- Cloud Source Repositories
点击下一步。
填写“构建配置”步骤中的选项:
- 分支 - 指示在运行触发器时应使用哪个来源。您可以在此处输入正则表达式。系统会自动验证匹配的分支:您可以在输入下方看到它们。请注意,如果只有一个分支匹配,则触发器将在创建后自动执行。
Build 类型
如果您的代码库应使用 Docker 构建,并且其中包含 Dockerfile,请选择 Dockerfile。来源位置指示 Dockerfile 的位置和名称。此目录将用作 Docker 构建上下文。所有路径都应该相对于当前目录。
否则,请选择 Google Cloud Buildpacks。使用 Buildpack context 指定目录,并使用 Entrypoint(可选)提供启动服务器的命令。示例:
gunicorn -p :8080 main:app
是 Python 的启动命令,java -jar target/myjar.jar
是 Java 的启动命令。将其留空以使用默认行为。
点击保存。
验证所选设置。
点击创建。
请注意,您将被重定向到“服务详情”页面,可以在其中跟踪持续部署设置的进度。
完成所有步骤后,请注意额外的选项:
- “修改持续部署”按钮。
- “构建记录”。
- “修订版本详细信息”部分中的来源详细信息。
现有服务
前往 Google Cloud 控制台中的 Knative serving:
在服务列表中找到服务,然后点击该服务。
点击设置持续部署。
选择提供商和代码库。
- GitHub - 如果您尚未进行身份验证,请点击身份验证并按照说明操作。默认情况下,通过 Cloud Build GitHub 应用来完成代码库连接。或者,您也可以在 Cloud Source Repositories 中镜像 GitHub 代码库。为此,请点击“高级选项”并选中“使用 Cloud Source Repositories 代码库镜像 GitHub 代码库” 了解详情
- Bitbucket - 如果您尚未进行身份验证,请点击身份验证并按照说明操作。
- Cloud Source Repositories
点击下一步。
填写“构建配置”步骤中的选项:
- 分支 - 指示在运行触发器时应使用哪个来源。您可以在此处输入正则表达式。系统会自动验证匹配的分支:您可以在输入下方看到它们。请注意,如果只有一个分支匹配,则触发器将在创建后自动执行。
Build 类型
如果您的代码库应使用 Docker 构建,并且其中包含 Dockerfile,请选择 Dockerfile。来源位置指示 Dockerfile 的位置和名称。此目录将用作 Docker 构建上下文。所有路径都应该相对于当前目录。
否则,请选择 Google Cloud Buildpacks。使用 Buildpack context 指定目录,并使用 Entrypoint(可选)提供启动服务器的命令。示例:
gunicorn -p :8080 main:app
是 Python 的启动命令,java -jar target/myjar.jar
是 Java 的启动命令。将其留空以使用默认行为。
点击保存。
该页面会重新加载并显示持续部署设置的进度。
完成所有步骤后,请注意额外的选项:
- “修改持续部署”按钮。
- “构建记录”。
- “修订版本详细信息”部分中的来源详细信息。
手动设置持续部署
如果您需要使用手动过程,而不是使用界面,请参阅手动设置持续部署。
将现有 Cloud Build 触发器关联到 Knative serving 服务。
如果您已有 Cloud Build 触发器,则可以将其关联到服务,并利用“服务详情”页面中的 Google Cloud 控制台功能:修改持续部署按钮和构建记录图表。
为此,您必须添加一个标签,并使用 gcb-trigger-id 作为键,使用 Cloud Build 触发器的唯一标识符(不是触发器名称)作为值。请参阅说明,了解如何设置标签。