自动构建故障排除

注意

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

构建失败

如果构建失败,在“**General**”和“**Builds**”选项卡上的构建报告行旁边会出现一个“**Retry**”图标。“**Build report**”页面和“**Timeline logs**”也会显示一个“**Retry**”按钮。

Timeline view showing the retry build button
注意

如果您正在查看属于某个组织的存储库的构建详细信息,“**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 对您的源代码存储库的访问权限。

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

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

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

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

  4. 在屏幕底部,选择“**Build Environment variables**”旁边的“**plus**”图标。

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

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

  7. 选择“**Save**”,或“**Save and Build**”以验证构建现在是否完成。

注意

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

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.