AWS Docker部署
我有一个自定义的docker镜像上传到ECS。我打开了权限来尝试解决这个问题(一旦我能够完成这个工作,我将再次锁定它)。我试图将docker映像部署到弹性beanstalk。我有一个docker启用弹性beanstalk环境设置。根据AWS文档,如果我从AWS内部拉取我的映像,我不需要传入证书。所以我上传我的Dockerrun.aws.json文件并尝试安装它。它失败,错误如下:AWS Docker部署
Command failed on instance. Return code: 1 Output: Failed to authenticate with ECR for registry '434875166128' in 'us-east-1'. Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/03build.sh failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.
/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文件中添加认证。它也不适合我。
Note that I am using a business account instead of a personal account, so there may be some unknown variances as well.
谢谢!
更新:我的用户此刻也拥有完整的权限,所以不应该有任何权限明智的阻碍。
我遇到了同样的问题。
解决方案: 在AWS -> IAM -> Roles - >
选择您的beanstalk正在使用的角色。
在我的情况下,它被设置为aws-elasticbeanstalk-ec2-role
在权限的作用,重视政策:AmazonEC2ContainerRegistryReadOnly
在ECR没有必要给任何权限这个角色。
你太棒了!这正是我所错过的。 –
当您在AWS Elastic Beanstalk管理控制台中启动环境时,'aws-elasticbeanstalk-ec2-role'是默认的实例配置文件。 - http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-instanceprofile.html –
将文档LInk添加到使用权限“AmazonEC2ContainerRegistryReadOnly”的文档中:http://docs.aws.amazon.com/ elasticbeanstalk /最新/ DG/create_deploy_docker.container.console.html – zatziky
可以intialize必要的服务角色弹性魔豆(AWS-elasticbeanstalk-EC2角色,AWS-elasticbeanstalk服务角色,AWSServiceRoleForECS)通过弹性魔豆的新控制台。 您必须在每个AWS账户上只执行一次:
- 转至Elastic beanstalk控制台。
- 接受“新设计”:在控制台的顶部,如果看到消息“我们正在测试新设计”,请选择接受使用新版本的控制台。警告,它似乎不能回滚到旧的控制台。
- 启动“创建新应用程序”向导,并在该技术中使用默认示例应用程序。
- 完成向导的所有步骤直到简历出现,并查看安全平台:您将看到“aws-elasticbeanbean -alk-ec2-role”和“aws-elasticbeanstalk-service-role”这两个角色。并终止向导以创建示例应用程序。
- 一段时间后,应用程序应该运行
- 在紧急情况下,进入IAM控制台和删除角色AWS-elasticbeanstalk-EC2角色和AWS-elasticbeanstalk服务角色,然后再次运行该向导。
我修正了“命令在实例上失败。返回代码:1输出:无法使用ECR进行注册表验证“和另一个奇怪的错误(”您提供的AWS访问密钥ID在我们的记录中不存在(ElasticBeanstalk :: ManifestDownloadError)“)。仍然有这个错误与旧的。
检查ECR存储库设置/权限像这里:https://media.amazonwebservices.com/blog/2015/ecr_permissions_1.png –
也请确保IAM角色附加到豆茎(运行拉的实例)可以通过IAM权限访问ECR和ECS:http://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_IAM_policies.html –
Thanks @MarcYoung。我确实已经设置了这些 –