解决您的自动构建问题

笔记

自动构建需要 Docker Pro、Team 或 Business 订阅

构建失败

如果构建失败,“常规”“构建”选项卡上的构建报告行旁边会出现 “重试”图标。构建报告页面和时间线日志还显示重试按钮。

显示重试构建按钮的时间线视图

笔记

如果您正在查看属于某个组织的存储库的构建详细信息,则仅当您有权访问该存储库时才会显示“取消”“重试”按钮。Read & Write

自动构建的执行时间限制为 4 小时。如果构建达到此时间限制,它将自动取消,并且构建日志会显示以下消息:

2022-11-02T17:42:27Z The build was cancelled or exceeded the maximum execution time.

此日志消息与您主动取消构建时的日志消息相同。要确定构建是否被自动取消,请检查构建持续时间。

使用链接的私有子模块构建存储库

Docker Hub 在源代码存储库中设置一个部署密钥,允许其克隆存储库并构建它。此密钥仅适用于单个特定代码存储库。如果您的源代码存储库使用私有 Git 子模块,或者要求您克隆其他私有存储库来构建,则 Docker Hub 无法访问这些附加存储库,您的构建无法完成,并且构建时间线中会记录错误。

要解决此问题,您可以使用环境变量来设置自动构建,SSH_PRIVATE 以覆盖部署密钥并授予 Docker Hub 的构建系统对存储库的访问权限。

笔记

如果您正在为团队使用自动构建,请改用以下流程,并为源代码提供者配置服务用户。您还可以对个人帐户执行此操作,以限制 Docker Hub 对源存储库的访问。

  1. 生成仅用于构建的 SSH 密钥对,并将公钥添加到您的源代码提供商帐户。

    此步骤是可选的,但允许您撤销仅构建密钥对而不删除其他访问权限。

  2. 将密钥对的私有部分复制到剪贴板。

  3. 在 Docker Hub 中,导航到已链接私有子模块的存储库的构建页面。 (如有必要,请按照此处的步骤配置自动构建。)

  4. 在屏幕底部,选择“构建环境变量”旁边的加号图标。

  5. 输入SSH_PRIVATE新环境变量的名称。

  6. 将密钥对的私有部分粘贴到字段中。

  7. 选择SaveSave and Build以验证构建现已完成。

笔记

您必须使用 git clone 通过 SSH ( git@submodule.tld:some-submodule.git) 而不是 HTTPS 配置您的私有 git 子模块。