AWS ElasticBeanstalk pull Docker image from Gitlab registry
我很难将Docker映像从私有Gitlab注册表中提取到AWS MultiContainer ElasticBeanstalk环境中。
我已将.dockercfg添加到与群集相同区域的S3中,并且还允许aws-elasticbeanstalk-ec2-role IAM角色从S3获取数据。
ElasticBeanstalk始终返回错误CannotPullContainerError:API错误(500)
我的.dockercfg的格式为:
1 2 3 4 5 6 | { "https://registry.gitlab.com" : { "auth" :"my gitlab deploy token", "email" :"my gitlab token name" } } |
在Dockerrun.aws.json内部,我添加了以下内容
1 2 3 4 | "authentication": { "bucket":"name of my bucket", "key":".dockercfg" }, |
当我尝试通过
gitlab部署令牌不是auth密钥。
要生成正确的身份验证密钥,通常需要执行以下操作:
1 | docker run -ti docker:dind sh -c"docker login -u name -p deploy-token registry.gitlab.com && cat /root/.docker/config.json" |
,它将显示类似以下内容的内容:
1 2 3 4 5 6 7 8 9 10 | { "auths": { "registry.gitlab.com": { "auth":"your-auth-key" } }, "HttpHeaders": { "User-Agent":"Docker-Client/18.09.0 (linux)" } } |
然后,根据elasticbeanstalk docs"使用私有存储库中的图像
",您应该随需随便。
希望这会对您有所帮助!