首先,我在AWS中创建了一个包含Docker映像的存储库。
然后,我创建了一个任务定义和一个ECS / EC2集群。最后,我使用集群和任务定义创建了服务。工作良好。
如何在现有集群上重新部署更新的Docker映像?
仅使用新的(或现有的)任务“更新”服务不起作用。即使使用“强制新部署”选项也无效。
答案 0 :(得分:2)
如果您未在容器定义中指定ECR图像的标签,它将始终获取最新的标签。因此,您有两种方法可以实现重新部署。
确保您的服务有足够的空间来部署新任务,例如,如果所需的Number of tasks
为1,则必须将Maximum percent
设置为200,这意味着您可以允许1 * 200%= 2个任务在部署时同时运行,然后只需键入以下命令:
aws ecs update-service --cluster <cluster name> --service <service name> --force-new-deployment
或者在将映像更新为ECR之后,您可以手动杀死现有任务并创建一个新任务(通常,创建过程应由ECS本身完成,只要您自动缩放即可)配置设置正确)。
答案 1 :(得分:1)
根据AWS文档,您实际上无法做到这一点... 您可以在这里阅读-https://docs.aws.amazon.com/cli/latest/reference/ecs/register-task-definition.html
仅通过“创建任务定义的新修订版” 任务定义->->创建新修订
它将在您的仓库中使用“最新”版本(当然最好用最新的标签)或自己添加标签。
顺便说一句-除非您已经准备好这样做,否则我将使用json作为ci / cd的一部分使用自动过程进行这些更新。