如何确保在 AWS ECS 上更新 Docker 图像?
How to ensure to update Docker image on AWS ECS?
我使用 Docker Hub 来存储私人 Docker 图像,存储库有一个 webhook,一旦图像更新,它就会调用我构建的服务:
- 更新 ECS 任务定义
- 更新ECS服务
- 取消注册旧的 ECS 任务定义
相应地,服务 运行。运行后,ECS 使用新任务定义创建新任务,停止使用旧任务定义的任务,服务返回新定义。
关键是 Docker 图像不会更新,一旦服务在新任务定义中启动,它就会保留旧图像。
我是不是做错了什么?如何确保更新 docker 图像?
分析 AWS ECS 日志后,我发现问题出在 ECS Docker 身份验证中。
为了解决这个问题,我将以下数据添加到文件 /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"}}
只需将YOUR_DOCKER_HUB_AUTH和YOUR_DOCKER_HUB_EMAIL替换为您自己的信息即可正常使用。
要查找此信息,您可以在自己的计算机上执行 docker login
,然后在文件 ~/.docker/config.json
中查找数据
有关私人注册表身份验证主题的更多信息,请查看http://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html
我使用 Docker Hub 来存储私人 Docker 图像,存储库有一个 webhook,一旦图像更新,它就会调用我构建的服务:
- 更新 ECS 任务定义
- 更新ECS服务
- 取消注册旧的 ECS 任务定义
相应地,服务 运行。运行后,ECS 使用新任务定义创建新任务,停止使用旧任务定义的任务,服务返回新定义。
关键是 Docker 图像不会更新,一旦服务在新任务定义中启动,它就会保留旧图像。
我是不是做错了什么?如何确保更新 docker 图像?
分析 AWS ECS 日志后,我发现问题出在 ECS Docker 身份验证中。
为了解决这个问题,我将以下数据添加到文件 /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"}}
只需将YOUR_DOCKER_HUB_AUTH和YOUR_DOCKER_HUB_EMAIL替换为您自己的信息即可正常使用。
要查找此信息,您可以在自己的计算机上执行 docker login
,然后在文件 ~/.docker/config.json
有关私人注册表身份验证主题的更多信息,请查看http://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html