Elastic Beanstalk 不会自动从 ECR 更新图像

Posted

技术标签:

【中文标题】Elastic Beanstalk 不会自动从 ECR 更新图像【英文标题】:Elastic Beanstalk does not update image from ECR automatically 【发布时间】:2019-09-29 18:32:56 【问题描述】:

我有 Dockerrun.aws.json 中的“更新”:“真” 当我在 ECR 中更新图像时,它应该会自动更新 EC2 iontance 中的图像和容器。

但是当我在推送新图像后 ssh 进入实例时,我仍然看到容器和图像没有更新。

[root@ip-10-20-60-125 ~]# docker ps 容器 ID 图像命令创建状态端口名称 c8e3bab8da13 258e7bc272bd "./graphhopper.sh we..." 8 天前 8 天前 8989/tcpender_mayer

[root@ip-10-20-60-125 ~]# docker 镜像 存储库标签图像 ID 创建大小 aws_beanstalk/current-app 最新 258e7bc272bd 8 天前 813MB openjdk 8-jdk b8d3f94869bb 6 周前 625MB

Dockerrun.aws.json 有这个


  "AWSEBDockerrunVersion": "1",
  "Authentication": 
    "Bucket": "xxxxx",
    "Key": "xxxxx"
  ,

  "Image": 
    "Name": "213074117100.dkr.ecr.us-east-1.amazonaws.com/xxxxx:latest",
    "Update": "true"
  ,
  "Ports": [
    
      "ContainerPort": "8989"
    
  ],
  "Volumes": [
    
      "HostDirectory": "/data",
      "ContainerDirectory": "/data"
    
  ],
  "Logging": "/var/log/eb",
  "Command": "xxxxx"

除了 update: "true" 之外还有其他设置吗?

如果我进行 eb 部署,它将拉取并更新。但是 "Update": "true" 应该在我更新图像时自动拉取和更新,这不会发生。

【问题讨论】:

你最终弄清楚它是什么了吗?目前遇到同样的问题 【参考方案1】:

从这个AWS Documentation 和这个线程AWS Beanstalk docker image automatic update doesn't work 看来,update=true 只是在docker run 之前执行docker pull,它不会在新的图像更新时更新容器。

从我目前的研究来看,目前似乎没有办法自动化这个过程。

【讨论】:

以上是关于Elastic Beanstalk 不会自动从 ECR 更新图像的主要内容,如果未能解决你的问题,请参考以下文章

Django Elastic Beanstalk 清漆缓存

将 Laravel 应用程序从 GitHub 分支自动部署到 AWS EC2 或 Elastic Beanstalk

如何从 Elastic Beanstalk 实例访问 S3 存储桶中的 docker 配置文件

如何让Elastic Beanstalk nginx支持的代理服务器从HTTP自动重定向到HTTPS?

如何从 Amazon Elastic Beanstalk 中删除一些 Apache 设置?

Elastic Beanstalk NetworkOut 自动扩展