http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_image.html#docker-单容器dockerrun privaterepo
按照这里的说明从Elastic Beanstalk连接到私有docker hub容器,但它顽固地拒绝工作。在docker 1.12中调用docker login时,生成的文件似乎没有电子邮件属性,但听起来aws需要它,因此我创建了一个名为dockercfg.json的文件,如下所示:
{
"https://index.docker.io/v1/": {
“认证”:“Y2…Fz”,
“电子邮件”:“c。。。[email protected]"
}
}
Dockerrun.aws.json文件的相关部分如下所示:
“身份验证”:{
“桶”:“elasticbeanstalk-us-west-2-9…4”,
“Key”:“dockercfg.json”
},
我把文件上传到S3存储桶的根目录下。为什么我仍然会遇到错误,比如Error:image c…6/w…t:23找不到。查看快照日志了解详细信息。我确信名称是正确的,如果它是公共存储库,这将起作用。完整错误如下所示。我是从GitHub使用Circle CI进行部署的,如果有什么不同,我很乐意提供所需的任何其他信息
信息:将新版本部署到实例。
警告:无法拉取Docker映像c…6/w…t:23,正在重试。。。
错误:未能拉取Docker映像c…6/w…t:23:拉取存储库Docker.io/c…6/w…t
错误:未找到图像c…6/w…t:23。有关详细信息,请查看快照日志。
错误:[实例:i-06b66f5121d8d23c3]命令在实例上失败。返回代码:1输出:(截断)…b项目
错误:未找到图像c…6/w…t:23
无法拉取Docker映像c…6/w…t:23:拉取存储库Docker.io/c…6/w…t
错误:未找到图像c…6/w…t:23。有关详细信息,请查看快照日志。
Hook/opt/elasticbeanstalk/hooks/appdeploy/pre/03build.sh失败。有关更多详细信息,请使用console或eb CLI检查/var/log/eb-activity.log。
信息:所有实例上的命令执行已完成。摘要:[成功:0,失败:1]。
错误:对实例id“i-06b66f5121d8d23c3”执行命令失败。正在中止操作。
错误:未能部署应用程序。
错误:未能部署应用程序。
编辑:这是完整的Dockerrun文件。请注意%BUILD_NUM%只是一个int,我可以验证它是否有效
{
“awsebdockerversion”:“1”,
“身份验证”:{
“桶”:“elasticbeanstalk-us-west-2-9…4”,
“Key”:“dockercfg.json”
},
“图像”:{
“名称”:“c…6/w…t:%BUILD_NUM%”,
“更新”:“正确”
},
“港口”:[
{
“集装箱港口”:“8080”
}
]
}
编辑:另外,如果我将这个Docker集线器容器公开,我已经验证了这一点
好的,让我们这样做
查看同一个文档页面
对于Docker版本1.6.2及更早版本,Docker login命令将以以下格式在~/.dockercfg中创建身份验证文件:
{
“服务器”:
{
“认证”:“认证令牌”,
“电子邮件”:“电子邮件”
}
}
我知道你已经把这部分搞对了。请逐一核对以下情况
1) 您是否在同一地区托管S3存储桶
AmazonS3存储桶必须与
使用它的环境。Elastic Beanstalk无法下载文件
来自其他地区托管的Amazon S3存储桶
2) 您是否检查了所需的权限
将s3:GetObject操作的权限授予中的IAM角色
实例配置文件。有关详细信息,请参见管理弹性豆茎
实例配置文件
3) 您的配置文件中有S3存储桶信息吗?(我想你也有这个)
将Amazon S3存储桶信息包括在身份验证(v1)中,或
dockrun.aws.json文件中的authentication(v2)参数
无法查看您的权限或环境区域,请仔细检查。
如果不行,我会升级到Docker 1.7+,如果可能的话,并使用相应的~/.Docker/config.json样式