从 GitHub 和 BitBucket 配置自动构建

笔记

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

要自动构建和测试映像,请将托管源代码服务链接到 Docker Hub,以便它可以访问您的源代码存储库。您可以为用户帐户或组织配置此链接。

如果您要链接源代码提供程序来为团队创建自动构建,请按照说明为团队创建服务帐户,然后再链接帐户,如下所述。

  1. 登录 Docker Hub。

  2. 在右上角的下拉导航中选择我的帐户,然后选择链接的帐户选项卡。

  3. 选择链接提供商作为您要链接的源提供商。

    如果您想取消当前 GitHub 帐户的链接并重新链接到新的 GitHub 帐户,请确保在通过 Docker Hub 链接之前完全退出 GitHub 。

  4. 查看Docker Hub Builder OAuth 应用程序的设置。

    授予 GitHub 帐户访问权限

    笔记

    如果您是任何 GitHub 组织的所有者,您可能会在此屏幕中看到用于授予 Docker Hub 访问权限的选项。您还可以单独编辑组织的第三方访问设置以授予或撤销 Docker Hub 的访问权限。请参阅 授予对 GitHub 组织的访问权限 以了解更多信息。

  5. 选择授权 docker以保存链接。

授予对 GitHub 组织的访问权限

如果您是 GitHub 组织的所有者,您可以授予或撤销 Docker Hub 对该组织存储库的访问权限。根据 GitHub 组织的设置,您可能需要成为组织所有者。

如果组织之前未授予或撤销特定访问权限,您通常可以在链接用户帐户的同时授予访问权限。在这种情况下,链接帐户屏幕中的组织名称旁边会出现授予访问权限按钮,如下所示。如果此按钮未出现,您必须手动授予应用程序访问权限。

要手动授予 Docker Hub 对 GitHub 组织的访问权限:

  1. 使用上述说明链接您的用户帐户。

  2. 在 GitHub 帐户设置中,找到 左下角的组织设置部分。

  3. 选择您想要授予 Docker Hub 访问权限的组织。

  4. 选择第三方访问

    该页面显示第三方应用程序及其访问状态的列表。

  5. 选择Docker Hub Builder旁边的铅笔图标。

  6. 选择组织旁边的授予访问权限。

撤销对 GitHub 组织的访问权限

要撤销 Docker Hub 对组织的 GitHub 存储库的访问权限:

  1. 在 GitHub 帐户设置中,找到左下角的组织设置部分。

  2. 选择您想要撤销 Docker Hub 访问权限的组织。

  3. 从组织配置文件菜单中,选择第三方访问。该页面显示第三方应用程序及其访问状态的列表。

  4. 选择 Docker Hub Builder 旁边的铅笔图标。

  5. 在下一页上,选择“拒绝访问”

要撤销 Docker Hub 对您的 GitHub 帐户的访问权限,您必须取消它与 Docker Hub 和您的 GitHub 帐户的链接。

  1. 在右上角的下拉导航中选择我的帐户,然后打开链接的帐户部分。

  2. 选择要删除的源提供程序旁边的插头图标。

  3. 转到您的 GitHub 帐户的设置页面。

  4. 在左侧导航栏中选择应用程序。

  5. 选择...Docker Hub Builder 应用程序右侧的菜单,然后选择Revoke

笔记

配置为自动构建源的每个存储库都包含一个 Webhook,用于通知 Docker Hub 存储库中的更改。当您撤销对源代码提供程序的访问权限时,此 Webhook 不会自动删除。

  1. 使用您的 Docker ID 登录 Docker Hub。

  2. 在右上角的下拉导航中选择我的帐户,然后选择链接的帐户选项卡。

  3. 选择链接提供商作为您要链接的源提供商。

  4. 如有必要,请登录 Bitbucket。

  5. 在出现的页面上,选择授予访问权限

要永久撤销 Docker Hub 对您的 Bitbucket 帐户的访问权限,您必须取消它与 Docker Hub 和您的 Bitbucket 帐户的链接。

  1. 登录 Docker Hub。

  2. 在右上角的下拉导航中选择我的帐户,然后打开链接的帐户部分。

  3. 选择要删除的源提供程序旁边的插头图标。

  4. 转到您的 Bitbucket 帐户并导航至Bitbucket 设置

  5. 在出现的页面上,选择OAuth

  6. 选择Docker Hub 行旁边的撤销。

笔记

配置为自动构建源的每个存储库都包含一个 Webhook,用于通知 Docker Hub 存储库中的更改。当您撤销对源代码提供程序的访问权限时,此 Webhook 不会自动删除。