将图像从EC2容器注册表部署到弹性Beanstalk凭据



给定设置:

  • 应用程序在本地开发并推到EC2容器注册表私人注册表
  • 带有码头主机的弹性豆茎环境

为了部署我的应用程序,弹性beanstalk单个容器指南说要制作一个Dockerrun.aws.json文件。

《弹性豆键指南》还说,要使用(任何)私人存储库中的图像,需要将凭据文件(带有身份验证令牌和电子邮件地址)添加到S3桶中。

对EC2容器注册表的身份验证涉及查询docker login命令可以使用的令牌,,但仅在12小时内有效

因此,从理论上讲,我可以遵循弹性beanstalk指南,并使用 aws ecr get-logindocker login ...命令使docker创建我需要的配置文件,将其转换为 .dockercfg文件,然后将其放在S3上。

如果然后将Dockerrun.aws.json文件作为新的应用程序版本上传到Elastic Beanstalk,则可以将其部署,如果12个小时没有经过。

我担心的是那12个小时后会发生什么?如果Elastic Beanstalk需要自动化我的应用程序并旋转更多实例,则如果尝试使用S3存储的凭据,它将失败。或者,如果我意识到我需要回到应用程序的先前版本,那么我不能仅仅通过过去的应用程序版本的弹性beanstalk列表来完成此操作;我需要在安装AWS CLI的机器上使用aws ecr get-logindocker login ...,再次上传到S3 Dance?

是否有一些不太脆弱的方法来设置Elastic Beanstalk和EC2容器注册表之间的身份验证,因此12小时的超时不是问题?

仅在此处插入相关的ECR FAQ答案(添加了重点):

您需要做的就是在dockerrun.aws.json配置中指定Amazon ECR存储库,>将Amazonec2ContainerRegistryReadonly策略添加到您的容器实例

最新更新