自动构建故障排除
注意自动化构建需要 Docker Pro、Team 或 Business 订阅。
构建失败
如果构建失败,在“**General**”和“**Builds**”选项卡上的构建报告行旁边会出现一个“**Retry**”图标。“**Build report**”页面和“**Timeline logs**”也会显示一个“**Retry**”按钮。

注意如果您正在查看属于某个组织的存储库的构建详细信息,“**Cancel**”和“**Retry**”按钮仅在您对该存储库具有 `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 对您的源代码存储库的访问权限。
生成一个仅用于构建的 SSH 密钥对,并将公钥添加到您的源代码提供商账户。
此步骤是可选的,但允许您撤销仅用于构建的密钥对,而无需删除其他访问权限。
将密钥对的私钥部分复制到剪贴板。
在 Docker Hub 中,导航到包含链接私有子模块的存储库的构建页面。(如有必要,请按照此处的步骤配置自动构建。)
在屏幕底部,选择“**Build Environment variables**”旁边的“**plus**”图标。
输入 `SSH_PRIVATE` 作为新环境变量的名称。
将密钥对的私钥部分粘贴到“**Value**”字段中。
选择“**Save**”,或“**Save and Build**”以验证构建现在是否完成。
注意您必须使用 SSH(`git@submodule.tld:some-submodule.git`)而不是 HTTPS 通过 git clone 配置您的私有 git 子模块。