对自动生成进行故障排除

注意

自动化构建需要一个 Docker Pro、Team 或 Business 订阅。

失败的构建

如果构建失败,则 General (常规) 和 Builds (构建) 选项卡上的构建报告行旁边会显示 Retry (重试) 图标。Build report (生成报告) 页面和 Timeline logs (时间轴日志) 还会显示 Retry (重试) 按钮。

Timeline view showing the retry build button

注意

如果您正在查看属于 organization,则 Cancel (取消) 和 Retry (重试) 按钮仅在您有权访问仓库时显示。Read & Write

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

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

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

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

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

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

注意

如果您使用的是团队版 autobuild,请使用以下过程 而是为您的源代码提供商配置 Service User。您可以 此外,对个人账户执行此操作,以限制 Docker Hub 对 源存储库。

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

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

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

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

  4. 在屏幕底部,选择 Build Environment variables(构建环境变量)旁边的加号图标。

  5. Enter 作为新环境变量的名称。SSH_PRIVATE

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

  7. 选择 Save (保存) 或 Save and Build (保存并生成) 以验证生成现在是否已完成。

注意

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