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

使用私有注册表创建 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. 按照《AWS Secrets Manager 用户指南》中的创建 AWS Secrets Manager 密钥的步骤操作。

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

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

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

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

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

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

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

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

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

    注意

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

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

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

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

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

      注意

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