故障排除自动构建

注意

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

构建失败

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

Timeline view showing the retry build button

注意

如果您正在查看属于某个组织的仓库的构建详情,则取消重试按钮仅在您对该仓库具有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. 在屏幕底部,选择 Build Environment variables 旁边的 加号 图标。

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

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

  7. 选择 保存保存并构建,以验证构建现已完成。

注意

您必须使用 SSH(git@submodule.tld:some-submodule.git)而非 HTTPS 来配置私有 Git 子模块。