对自动构建进行故障排除

注意

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

构建失败

如果构建失败,重试图标将显示在常规构建选项卡上的构建报告行旁边。构建报告页面和时间轴日志也显示一个重试按钮。

Timeline view showing the retry build button

注意

如果你正在查看属于组织的代码库的构建详细信息,取消重试按钮仅在你对代码库具有读写访问权限时才会显示。

自动构建的执行时间限制为 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. 选择保存保存并构建以验证构建现在是否已完成。

注意

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