问题描述
我正在将Docker映像部署到ElasticBeanstalk(使用CodePipeline)。我的Dockerrun.aws.json
看起来像这样:
{
"AWSEBDockerrunVersion": "1","Authentication": {
"Bucket": "mybucket","Key": "docker_hub_auth.json"
},"Image": {
"Name": "repo/image:tag","Update": "true"
},"Ports": [
{
"ContainerPort": "8080"
}
]
}
我从ElasticBeanstalk实例得到错误:Failed to pull Docker image repo/image:tag: Error response from daemon: pull access denied for repo/image,repository does not exist or may require 'docker login': denied: requested access to the resource is denied. Check snapshot logs for details. (Executor::NonZeroExitStatus)
当我切换到实例时,我可以检查 auth文件 docker_hub_auth.json
是否已成功下载。令我惊讶的是,该文件(通过/root/.dockercfg
从03build.sh
下载到download_auth.py
。然后调用docker pull
。但是我认为码头工人希望在/root/.docker/config.json
中进行身份验证!
当我在实例上手动执行docker login
时,它将Docker Hub身份验证添加到/root/.docker/config.json
并开始部署。但是很明显,如果我的实例被替换或新实例启动,我需要在没有手册docker login
的情况下使其工作。
对我来说似乎是个虫子。我能做什么?自动化脚本将auth下载到/root/.dockercfg
,但是Docker(Docker版本19.03.6-ce,内部版本369ce74)需要在/root/.docker/config.json
中使用它。有什么建议可以克服吗?
更新,已解决
A已经迁移到Amazon Linux 2,现在可以使用了。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)