amazon-web-services - 用于在 AWS EB 容器服务上部署的 Gitlab 注册表凭证

标签 amazon-web-services docker gitlab gitlab-ci

我不知道如何设置 Gitlab 管道,以便 Amazon Elastic Beanstalk 提取在 Gitlab 上构建的应用程序的镜像并将其存储在我们的 Gitlab 私有(private) Docker 注册表中。

这是我现在所做的工作:

我有一个 Dockerrun.aws.js,它可以访问我的 S3 文件来存储我的 Gitlab 私有(private)注册表凭据。 但我遇到了关于存储这些积分所需的格式的问题,这是 AWS 向我提供的错误消息:

Activity execution failed, because: Error response from daemon: Get https://registry.gitlab.com/v2/organization/app/manifests/latest: denied: access forbidden
Failed to pull Docker image registry.gitlab.com/organization/app:latest, retrying...
Error response from daemon: Get https://registry.gitlab.com/v2/organization/app/manifests/latest: denied: access forbidden
Failed to pull Docker image registry.gitlab.com/organization/app:latest: Error response from daemon: Get https://registry.gitlab.com/v2/organization/app/manifests/latest: denied: access forbidden. Check snapshot logs for details. (ElasticBeanstalk::ExternalInvocationError)
caused by: Error response from daemon: Get https://registry.gitlab.com/v2/segeco/organization/app/latest: denied: access forbidden
Failed to pull Docker image registry.gitlab.com/organization/app:latest, retrying...
Error response from daemon: Get https://registry.gitlab.com/v2/organization/app/manifests/latest: denied: access forbidden
Failed to pull Docker image registry.gitlab.com/organization/app:latest: Error response from daemon: Get https://registry.gitlab.com/v2/organization/app/manifests/latest: denied: access forbidden. Check snapshot logs for details. (Executor::NonZeroExitStatus)

我从 Gitlab 生成了部署 token ,但官方文档没有描述如何使用所述部署 token 。 有没有办法使用我存储在 S3 上的文件中的部署 token 来允许 AWS EB 从注册表中提取我的应用程序?

最佳答案

鉴于您的 GitLab Deploy Token ,使用生成的用户名和密码,并在出现提示时将其传递给 docker loginregistry.gitlab.com(或使用适当的 CLI 选项)。这将使用您需要上传到 S3 的信息填充您的 Docker config.json 文件。您将寻找看起来像这样的部分。

"registry.gitlab.com": {
  "auth": "some_auth_token_here"
}

参见Configuring Docker Environments了解有关如何制作存储在 S3 中的文件以便能够使用私有(private)存储库中的图像的详细信息。

一旦你有了这个,然后看看 Using Images from a Private Repository关于使用包含身份验证信息的 S3 存储桶和 key 填充 Dockerrun.aws.json 文件的 Authentication 部分。

关于amazon-web-services - 用于在 AWS EB 容器服务上部署的 Gitlab 注册表凭证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51616070/

相关文章:

amazon-web-services - 是否可以保证交付AWS S3事件通知?

docker - Kubernetes VolumeMount 路径包含时间戳

docker - 使用 docker.sock 在 Kubernetes 上托管 Jenkins

Meteor Up Docker 和 Graphicsmagick

ruby-on-rails - Gitlab CE 不发送电子邮件

amazon-web-services - AWS ECS Fargate 任务无法从 Cloudformation Stack 正常工作

php - 如何通过Cloudsearch搜索经常变化的值?

amazon-web-services - 使用对流层的 ec2、s3、负载均衡器的 AWS 配置

如果提交消息不包含 WIP,则 gitlab 规则

nginx - Gitlab:运行 unicorn 的问题,Resque with Passenger/Nginx