【发布时间】:2016-12-29 06:07:05
【问题描述】:
我有一个自定义 docker 镜像上传到 ECS。我打开了权限来尝试解决这个问题(一旦我可以让它工作,我会再次锁定它)。我正在尝试将 docker 映像部署到弹性 beantalk。我设置了一个启用 docker 的弹性 beanstalk 环境。根据 AWS 文档,如果我从 AWS 中提取图像,则不需要传递凭据。所以我上传了我的 Dockerrun.aws.json 文件并尝试安装它。它失败并出现错误:
命令在实例上失败。返回代码:1 输出:无法通过 ECR 对“us-east-1”中的注册表“434875166128”进行身份验证。挂钩 /opt/elasticbeanstalk/hooks/appdeploy/pre/03build.sh 失败。有关更多详细信息,请使用控制台或 EB CLI 检查 /var/log/eb-activity.log。
/var/log/eb-activity.log 信息中没有任何用处。
这是我的 Dockerrun.aws.json 文件:
{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "{id000xxxx}.dkr.ecr.us-east-1.amazonaws.com/my-repo:1.0.0",
"Update": "true"
},
"Ports": [
{
"ContainerPort": "4000"
}
],
"Logging": "/var/log/app-name"
}
我还尝试在 S3 中使用 dockercfg.json 文件添加身份验证。这对我也不起作用。
请注意,我使用的是企业帐户而不是个人帐户,因此也可能存在一些未知差异。
谢谢!
更新:我的用户目前也拥有完全权限,因此不应该有任何权限方面的障碍。
【问题讨论】:
-
检查 ECR 存储库设置/权限,如下所示:media.amazonwebservices.com/blog/2015/ecr_permissions_1.png
-
还要确保附加到 beanstalk(运行 pull 的实例)的 IAM 角色可以通过 IAM 权限访问 ECR 和 ECS:docs.aws.amazon.com/AmazonECR/latest/userguide/…
-
谢谢@MarcYoung。我确实已经正确设置了这些。
-
@NickAllen 我也遇到了这个问题,有什么更新吗?在存储库的所有权限下,我同时拥有“aws-elasticbeanstalk-ec2-role”和“aws-elasticbeanstalk-service-role”。
-
@IanWalter 不幸的是我没有。我暂时把它放在次要位置。希望有人在某个时间点提出解决方案。
标签: amazon-web-services docker amazon-elastic-beanstalk amazon-ecs