Dockerrun.aws.json结构ECR回购

我们正在从Docker Hub切换到ECR,我很好奇如何构buildDockerrun.aws.json文件来使用这个图像。 我试图将名称修改为<my_ECR_URL>/<repo_name>:<image_tag>但这不成功。 我还在S3上看到了使用身份validation文件的私人registry的详细信息,但是当aws ecr get-login是推荐使用ECR进行身份validation的方式时,这似乎不是正确的路由。

任何人都可以指出我如何在Beanstalk Dockerrun.aws.json文件中使用ECR图像?

如果我查看ECS任务定义,则需要一个名为com.amazonaws.ecs.capability.ecr-auth的必需属性,但是我没有在Dockerrun.aws.json文件中的任何位置设置该属性,而且我不确定需要什么到那里。 也许这是一个S3桶? 每次尝试从ECS运行Elastic Beanstalk创build的任务时都需要一些东西,我得到:

 Run tasks failed Reasons : ATTRIBUTE 

任何见解都非常感谢。

更新我从一些其他线程看到,这与以前版本的ECS代理发生,但我目前正在运行Agent version 1.6.0Docker version 1.7.1 ,我相信是推荐的版本。 这可能是Docker版本的问题吗?

所以事实certificate,ECS代理商只能用1.7版本的图片,这就是我的下落。 更新代理解决了我的问题,并希望它可以帮助别人。

如果您正在使用之前为Elastic Beanstalk创build的angular色,则这很可能是IAMangular色的问题。 确保Elastic Beanstalk运行的angular色具有附加的AmazonEC2ContainerRegistryReadOnly托pipe策略

资料来源: http : //docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_IAM_policies.html

在ECS Agent的1.7.0版本中增加了对ECR的支持。

使用Elasticbeanstalk和ECR时,您不需要进行身份validation。 只要确保用户具有AmazonEC2ContainerRegistryReadOnly策略

您可以使用Amazon EC2容器registry(Amazon ECR)将自定义Docker镜像存储在AWS中。 当您将Docker映像存储在Amazon ECR中时,Elastic Beanstalk会使用环境的实例configuration文件自动向Amazon ECRregistry进行身份validation,因此您不需要生成身份validation文件并将其上传到Amazon Simple Storage Service(Amazon S3)。

但是,您需要为您的实例提供访问Amazon ECR存储库中映像的权限,方法是向环境的实例configuration文件添加权限。 您可以将AmazonEC2ContainerRegistryReadOnly托pipe策略附加到实例configuration文件,以便为您的帐户中的所有Amazon ECR存储库提供只读访问权限,或者使用以下模板创build自定义策略来授予对单个存储库的访问权限:

资料来源: http : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker.container.console.html