我有一个自定义docker镜像上传到ECS。我打开了权限来尝试解决此问题(一旦可以使它正常工作,我将再次将其锁定)。我正在尝试将docker映像部署到弹性beantalk。我设置了一个启用了docker的Elastic beantalk环境。根据AWS文档,如果我要从AWS中提取映像,则无需传递凭据。所以我上传了我的Dockerrun.aws.json文件并尝试安装它。它失败并显示以下错误:
实例上的命令失败。返回码:1输出:无法使用'us-east-1'中的注册表'434875166128'的ECR进行身份验证。挂钩/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文件的身份验证。这对我也不起作用。
请注意,我使用的是企业帐户,而不是个人帐户,因此可能会有一些未知的差异。
谢谢!
更新:目前我的用户也具有完全权限,因此不应有任何权限方面的阻碍。
我遇到了同样的问题。
解决方案:在AWS -> IAM -> Roles - >
选择您的beantalk使用的角色时。
就我而言,它被设置为 aws-elasticbeanstalk-ec2-role
在角色的权限下,附加策略:AmazonEC2ContainerRegistryReadOnly
在ECR中,无需为此角色授予任何权限。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句