7.3. 构建触发器
存储库构建也可由事件(如推送到 SCM (GitHub、BitBucket 或 GitLab)的事件自动触发,或通过 调用 Webhook 来自动触发存储库构建。
7.3.1. 创建新构建触发器 复制链接链接已复制到粘贴板!
要设置构建触发器,请单击 Builds 视图 页面上的 Create Build Trigger
按钮,并按照对话框的说明进行操作。您需要授予 Red Hat Quay 访问权限,以便能设置触发器,并且您的帐户 需要在 SCM 存储库 上具有 admin 访问权限。
7.3.2. 手动触发构建触发器 复制链接链接已复制到粘贴板!
要手动触发构建触发器,可单击构建触发器旁边的图标,然后选择 Run Now
。
7.3.3. 构建上下文 复制链接链接已复制到粘贴板!
使用 Docker 构建镜像时,系统将指定一个目录来成为构建上下文。这适用于手动构建和构建触发器,因为 Red Hat Quay 执行的构建与在您自己的机器上运行 docker build
不同。
Red Hat Quay 构建上下文始终从构建设置中的指定 子目录,并在没有指定构建源时回退到构建源的根目录。触发构建时,Red Hat Quay 构建 worker 会将 git 存储库克隆到 worker 机器,并在执行构建前输入构建上下文。
对于基于 tar 归档的构建,构建工作程序提取存档并进入构建上下文。例如:
试想一下,上面的示例是 GitHub 存储库的目录结构,名为"example"。如果构建触发器设置中没有指定子目录,或者手动启动构建时,构建将在示例目录中操作。
如果将 subdir
指定为构建触发器设置中的子目录,则只有其中的 Dockerfile 才对构建可见。这意味着您无法使用 Dockerfile 中的 ADD
命令来添加 文件
,因为它不在构建上下文之外。
与 Docker Hub 不同,Dockerfile 是 Red Hat Quay 上构建上下文的一部分。因此,它一定不会出现在 .dockerignore
文件中。