使用 Cloud Build 通过 Git 实现持续部署

您可以使用 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.

    Enable the APIs

通过 Knative serving 界面设置持续部署

根据您是在新服务上还是在现有服务上设置持续部署,此过程略有不同。请点击相应标签页以了解详情。

新服务

  1. 前往 Google Cloud 控制台中的 Knative serving:

    前往 Knative serving

  2. 点击创建服务

  3. 使用您的偏好设置填写“服务设置”。

  4. 点击下一步

  5. 选择从源代码库持续部署新修订版本 (Continuously deploy new revisions from a source repository)。

    设置 Cloud Build

  6. 点击设置 Cloud Build

  7. 选择提供商和代码库。

    • GitHub - 如果您尚未进行身份验证,请点击身份验证并按照说明操作。默认情况下,通过 Cloud Build GitHub 应用来完成代码库连接。或者,您也可以在 Cloud Source Repositories 中镜像 GitHub 代码库。为此,请点击“高级选项”并选中“使用 Cloud Source Repositories 代码库镜像 GitHub 代码库” 了解详情
    • BitbucketBitbucket - 如果您尚未进行身份验证,请点击身份验证并按照说明操作。
    • Cloud Source Repositories

    设置持续部署步骤 1

  8. 点击下一步

  9. 填写“构建配置”步骤中的选项:

    • 分支 - 指示在运行触发器时应使用哪个来源。您可以在此处输入正则表达式。系统会自动验证匹配的分支:您可以在输入下方看到它们。请注意,如果只有一个分支匹配,则触发器将在创建后自动执行。
    • Build 类型

      • 如果您的代码库应使用 Docker 构建,并且其中包含 Dockerfile,请选择 Dockerfile来源位置指示 Dockerfile 的位置和名称。此目录将用作 Docker 构建上下文。所有路径都应该相对于当前目录。

      • 否则,请选择 Google Cloud Buildpacks。使用 Buildpack context 指定目录,并使用 Entrypoint(可选)提供启动服务器的命令。示例:gunicorn -p :8080 main:app 是 Python 的启动命令,java -jar target/myjar.jar 是 Java 的启动命令。将其留空以使用默认行为

    设置持续部署步骤 2

  10. 点击保存

  11. 验证所选设置。

    设置持续部署验证

  12. 点击创建

  13. 请注意,您将被重定向到“服务详情”页面,可以在其中跟踪持续部署设置的进度。

  14. 完成所有步骤后,请注意额外的选项:

现有服务

  1. 前往 Google Cloud 控制台中的 Knative serving:

    前往 Knative serving

  2. 在服务列表中找到服务,然后点击该服务。

  3. 点击设置持续部署

  4. 选择提供商和代码库。

    • GitHub - 如果您尚未进行身份验证,请点击身份验证并按照说明操作。默认情况下,通过 Cloud Build GitHub 应用来完成代码库连接。或者,您也可以在 Cloud Source Repositories 中镜像 GitHub 代码库。为此,请点击“高级选项”并选中“使用 Cloud Source Repositories 代码库镜像 GitHub 代码库” 了解详情
    • BitbucketBitbucket - 如果您尚未进行身份验证,请点击身份验证并按照说明操作。
    • Cloud Source Repositories

    设置持续部署步骤 1

  5. 点击下一步

  6. 填写“构建配置”步骤中的选项:

    • 分支 - 指示在运行触发器时应使用哪个来源。您可以在此处输入正则表达式。系统会自动验证匹配的分支:您可以在输入下方看到它们。请注意,如果只有一个分支匹配,则触发器将在创建后自动执行。
    • Build 类型

      • 如果您的代码库应使用 Docker 构建,并且其中包含 Dockerfile,请选择 Dockerfile来源位置指示 Dockerfile 的位置和名称。此目录将用作 Docker 构建上下文。所有路径都应该相对于当前目录。

      • 否则,请选择 Google Cloud Buildpacks。使用 Buildpack context 指定目录,并使用 Entrypoint(可选)提供启动服务器的命令。示例:gunicorn -p :8080 main:app 是 Python 的启动命令,java -jar target/myjar.jar 是 Java 的启动命令。将其留空以使用默认行为

    设置持续部署步骤 2

  7. 点击保存

  8. 该页面会重新加载并显示持续部署设置的进度。

  9. 完成所有步骤后,请注意额外的选项:

手动设置持续部署

如果您需要使用手动过程,而不是使用界面,请参阅手动设置持续部署

将现有 Cloud Build 触发器关联到 Knative serving 服务。

如果您已有 Cloud Build 触发器,则可以将其关联到服务,并利用“服务详情”页面中的 Google Cloud 控制台功能:修改持续部署按钮和构建记录图表。

为此,您必须添加一个标签,并使用 gcb-trigger-id 作为键,使用 Cloud Build 触发器的唯一标识符(不是触发器名称)作为值。请参阅说明,了解如何设置标签。