如何确保更新AWS ECS上的Docker镜像?

我使用Docker Hub来存储一个私有的Docker镜像,这个仓库有一个webhook,一旦图像被更新,它会调用一个服务,

  • 更新ECS任务定义
  • 更新ECS服务
  • 注销旧的ECS任务定义

该服务正在运行。 运行后,ECS用新的任务定义创build一个新的任务,用旧的任务定义停止任务,服务返回新的定义。

关键是Docker Image不会更新,一旦服务在新的任务定义中启动,它就会保留旧图像。

难道我做错了什么? 如何确保docker图像更新?

在分析AWS ECS日志后,我发现问题出在ECS Docker身份validation中。

为了解决这个问题,我把下面的数据添加到了/etc/ecs/ecs.config文件中

 ECS_CLUSTER=default ECS_ENGINE_AUTH_TYPE=dockercfg ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"YOUR_DOCKER_HUB_AUTH","email":"YOUR_DOCKER_HUB_EMAIL"}} 

只需用您自己的信息replaceYOUR_DOCKER_HUB_AUTHYOUR_DOCKER_HUB_EMAIL即可正常工作。

要find这个信息,你可以在自己的计算机上执行docker login ,然后在文件〜/ .docker / config.json中查找数据

有关私人registry身份validation主题的更多信息,请参阅http://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html