使用私有注册表创建 CodeBuild 项目 - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用私有注册表创建 CodeBuild 项目

  1. 有关如何创建免费的私有存储库的更多信息,请参阅 Docker Hub 上的存储库。您还可以在终端中运行以下命令来提取映像、获取其ID,并将其推送到新的存储库。

    docker pull amazonlinux docker images amazonlinux --format {{.ID}} docker tag image-id your-username/repository-name:tag docker login docker push your-username/repository-name
  2. 按照《Amazon Secrets Manager 用户指南》创建 Amazon Secrets Manager 密钥中的步骤进行操作。

    1. 在步骤 3 中,在选择密钥类型,选择其他密钥类型

    2. 密钥/值对中,为您的 Docker Hub 用户名创建一个键值对,为您的 Docker Hub 密码创建一个键值对。

    3. 继续按照创建 Amazon Secrets Manager 密钥中的步骤进行操作。

    4. 在步骤 5 中,在配置自动轮换页面上,将其关闭,因为密钥对应于您的 Docker Hub 凭证。

    5. 按照创建 Amazon Secrets Manager 密钥中的步骤完成操作。

    有关更多信息,请参阅什么是 Amazon Secrets Manager?

  3. 在控制台中创建 Amazon CodeBuild 项目时,会 CodeBuild 附上所需的权限。如果您使用的 Amazon KMS 密钥除外DefaultEncryptionKey,则必须将其添加到服务角色中。有关更多信息,请参阅《IAM 用户指南》中的修改角色(控制台)

    要使您的服务角色与 Secrets Manager 配合使用,它必须至少具有 secretsmanager:GetSecretValue 权限。

    服务角色配置。
  4. 要使用控制台创建一个具有在私有注册表中存储的环境的项目,请在创建项目时执行以下操作。有关信息,请参阅创建构建项目(控制台)

    注意

    如果您的私有注册表位于您的 VPC 中,则它必须具有公共互联网访问权限。 CodeBuild 无法从 VPC 中的私有 IP 地址提取镜像。

    1. 对于环境映像,选择自定义映像

    2. 对于环境类型,选择 LinuxWindows

    3. 对于映像注册表,请选择其他注册表

    4. 外部注册表 URL 中,输入映像位置,在注册表凭证 - 可选中输入您的 Secrets Manager 凭证的 ARN 或名称。

      注意

      如果您的凭证在当前区域中不存在,则必须使用 ARN。如果凭证存在于其他区域中,则无法使用凭证名称。