12.5. 构建触发器


构建触发器 是在满足特定条件时自动启动容器镜像构建的机制,如更改源代码、依赖项更新或 创建 webhook 调用。这些触发器有助于自动化镜像构建过程,并确保容器镜像始终保持最新状态,而无需手动干预。

以下小节涵盖了与创建构建触发器、标签命名约定、如何跳过源控制构建、启动构建或手动触发构建相关的内容。

12.5.1. 创建构建触发器

以下流程 设置自定义 Git 触发器。自定义 Git 触发器是任何 Git 服务器充当 构建触发器 的通用方法。它依赖于 SSH 密钥和 webhook 端点。创建自定义 Git 触发器与创建任何其他触发器类似,但以下情况除外:

  • Quay.io 无法自动检测与触发器搭配使用的正确 Robot 帐户。这必须在创建过程中手动完成。

但是,可以复制这些步骤,以使用 Github、Gitlab 或 Bitbucket 创建 构建触发器,但在 config.yaml 文件中为这些服务配置凭证。

注意
  • 如果要使用 Github 创建 构建触发器,则必须通过创建 OAuth 应用程序将 Github 配置为与 Red Hat Quay 搭配使用。如需更多信息,请参阅"创建 OAuth 应用程序 Github"。

流程

  1. 登录到您的 Red Hat Quay registry。
  2. 在导航窗格中,单击 Repositories
  3. 单击 Create Repository
  4. Builds 选项卡。
  5. Builds 页面上,单击 Create Build Trigger
  6. 选择所需的平台,如 GithubBitbucketGitlab 或使用自定义 Git 存储库。在本例中,单击 Custom Git Repository Push
  7. 输入自定义 Git 存储库名称,例如 git@github.com:<username>/<repo>.git。然后,单击 Next
  8. 提示时,通过选择其中一个或两个选项来配置标记选项:

    • 使用分支或标签名称 标记清单。在选择此选项时,构建的清单会标记 git commit 的分支或标签名称。
    • 如果在默认分支上添加 latest 标签。在选择此选项时,如果构建在存储库的默认分支中进行了标记,则构建的清单具有 latest。

      另外,您可以添加自定义标记模板。您可以在这里输入多个标签模板,包括使用提交中的简短 SHA ID、时间戳、作者名称、提交者和分支名称作为标签。如需更多信息,请参阅 "Tag naming for build triggers"。

      配置标记后,点 Next

  9. 出现提示时,选择调用触发器时要构建的 Dockerfile 的位置。如果 Dockerfile 位于 git 存储库的根目录并命名为 Dockerfile,请输入 /Dockerfile 作为 Dockerfile 路径。然后,单击 Next
  10. 出现提示时,选择 Docker 构建的上下文。如果 Dockerfile 位于 Git 存储库的根目录中,请输入 / 作为构建上下文目录。然后,单击 Next
  11. 可选。选择可选的机器人帐户。这可让您在构建过程中拉取私有基础镜像。如果您知道不使用私有基础镜像,您可以跳过这一步。
  12. 点击 Next。检查任何验证警告。如有必要,请在单击 Finish 前修复问题。
  13. 您会被警报,该触发器已被成功激活。请注意,使用这个触发器需要以下操作:

    • 您必须授予以下对 git 存储库的读取访问权限。
    • 您必须将存储库设置为 POST 到以下 URL,才能触发构建。

      保存 SSH Public Key,然后单击 return to <organization_name>/<repository_name>。您将被重定向到存储库的 Builds 页面。

  14. Builds 页面中,您现在有一个 构建触发器。例如:

    Example Build trigger

    创建自定义 Git 触发器后,需要额外的步骤。继续 继续"设置自定义 Git 触发器"。

    如果您要为 Github、Gitlab 或 Bitbucket 设置构建触发器,请继续" 手动触发构建 "。

12.5.2. 手动触发构建

可以按照以下流程手动触发 构建

流程

  1. Builds 页面中,启动新构建
  2. 出现提示时,选择 Invoke Build Trigger
  3. Run Trigger Now 来手动启动此过程。
  4. 输入要启动构建的提交 ID,例如 1c002dd

    构建启动后,您可以在 Repository Builds 页面上看到 构建 ID

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.