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"。
流程
- 登录到您的 Red Hat Quay registry。
- 在导航窗格中,单击 Repositories。
- 单击 Create Repository。
- 点 Builds 选项卡。
- 在 Builds 页面中,点 Create Build Trigger。
- 选择所需的平台,如 Github、Bitbucket、Gitlab 或使用自定义 Git 存储库。在本例中,单击 Custom Git Repository Push。
-
输入自定义 Git 存储库名称,例如
git@github.com:<username>/<repo>.git
。然后,单击 Next。 提示时,通过选择其中一个或两者都选项来配置标记选项:
- 使用分支或标签名称 标记清单。选择此选项时,构建的清单会标记 git 提交的分支或标签的名称。
如果在默认分支 上,添加
latest
标签。在选择此选项时,如果构建发生在存储库的默认分支上,则构建带有 latest 的清单会被标记。另外,您可以添加自定义标记模板。您可以在此处输入多个标签模板,包括将提交中的短 SHA ID、时间戳、作者名称、提交者和分支名称用作标签。如需更多信息,请参阅 "Tag naming for build triggers"。
配置标记后,单击 下一步。
- 出现提示时,选择在调用触发器时要构建的 Dockerfile 的位置。如果 Dockerfile 位于 git 存储库的根目录并命名 Dockerfile,请输入 /Dockerfile 作为 Dockerfile 路径。然后,单击 Next。
-
出现提示时,选择 Docker 构建的上下文。如果 Dockerfile 位于 Git 存储库的根目录,请输入
/
作为构建上下文目录。然后,单击 Next。 - 可选。选择可选的机器人帐户。这可让您在构建过程中拉取私有基础镜像。如果您知道没有使用私有基础镜像,您可以跳过这一步。
- 点击 Next。检查任何验证警告。如有必要,请在单击 Finish 前修复问题。
您收到了触发器已成功激活的警报。请注意,使用这个触发器需要以下操作:
- 您必须为以下公钥授予 git 存储库读取访问权限。
您必须将存储库设置为
POST
到以下 URL,以触发构建。保存 SSH 公钥,然后点 return to <organization_name>/<repository_name>。您将被重定向到存储库的 Builds 页面。
在 Builds 页面中,您现在有一个 构建触发器。例如:
创建自定义 Git 触发器后,需要额外的步骤。继续 继续"设置自定义 Git 触发器"。
如果您要为 Github、Gitlab 或 Bitbucket 设置构建触发器,请继续" 手动触发构建 "。
12.5.2. 手动触发构建
可以按照以下流程手动触发 构建。
流程
- 在 Builds 页面中,启动新构建。
- 出现提示时,选择 Invoke Build Trigger。
- 点 Run Trigger Now 手动启动进程。
输入要启动构建的提交 ID,例如
1c002dd
。构建启动后,您可以在 Repository Builds 页面上看到 构建 ID。