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

时间:2016-01-15 20:18:47

标签: amazon-web-services docker aws-ec2 amazon-ecs

我使用Docker Hub存储私有Docker镜像,存储库有一个webhook,一旦图像更新,它就会调用我构建的服务:

  • 更新ECS任务定义
  • 更新ECS服务
  • 取消注册旧的ECS任务定义

服务正在相应地运行。运行后,ECS使用新任务定义创建新任务,使用旧任务定义停止任务,服务返回新定义。

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

我做错了吗?如何确保更新docker镜像?

1 个答案:

答案 0 :(得分:4)

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

要解决这个问题,我已将以下数据添加到文件/etc/ecs/ecs.config

@Html.DropDownListFor(m => m.WordTypes,
    (IEnumerable<SelectListItem>)Mapper.Map(
        Model.WordTypes, 
        typeof(IList<SelectListItemBase>), 
        typeof(IList<SelectListItem>))
)

只需用您自己的信息替换 YOUR_DOCKER_HUB_AUTH YOUR_DOCKER_HUB_EMAIL ,它就能正常运行。

要查找此信息,您可以在自己的计算机上执行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"}} ,然后在〜/ .docker / config.json文件中查找数据

有关Private Registry Authentication主题的更多信息,请查看http://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html