排查您的自动构建问题

注意

自动化构建需要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@submodule.tld:some-submodule.git`)而不是HTTPS来配置您的私有git子模块。