如何确保更新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_AUTH和YOUR_DOCKER_HUB_EMAIL即可正常工作。
要find这个信息,你可以在自己的计算机上执行docker login
,然后在文件〜/ .docker / config.json中查找数据
有关私人registry身份validation主题的更多信息,请参阅http://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html