AWS-ECS-如何在现有ECS(带有1个EC2)实例上重新部署更新的Docker映像?

时间:2018-12-27 19:05:28

标签: amazon-web-services amazon-ecs

首先,我在AWS中创建了一个包含Docker映像的存储库。

然后,我创建了一个任务定义和一个ECS / EC2集群。最后,我使用集群和任务定义创建了服务。工作良好。

如何在现有集群上重新部署更新的Docker映像?

仅使用新的(或现有的)任务“更新”服务不起作用。即使使用“强制新部署”选项也无效。

2 个答案:

答案 0 :(得分:2)

如果您未在容器定义中指定ECR图像的标签,它将始终获取最新的标签。因此,您有两种方法可以实现重新部署。

  1. 确保您的服务有足够的空间来部署新任务,例如,如果所需的Number of tasks为1,则必须将Maximum percent设置为200,这意味着您可以允许1 * 200%= 2个任务在部署时同时运行,然后只需键入以下命令: aws ecs update-service --cluster <cluster name> --service <service name> --force-new-deployment

  2. 或者在将映像更新为ECR之后,您可以手动杀死现有任务并创建一个新任务(通常,创建过程应由ECS本身完成,只要您自动缩放即可)配置设置正确)。

答案 1 :(得分:1)

根据AWS文档,您实际上无法做到这一点... 您可以在这里阅读-https://docs.aws.amazon.com/cli/latest/reference/ecs/register-task-definition.html

仅通过“创建任务定义的新修订版” 任务定义->->创建新修订

它将在您的仓库中使用“最新”版本(当然最好用最新的标签)或自己添加标签。

顺便说一句-除非您已经准备好这样做,否则我将使用json作为ci / cd的一部分使用自动过程进行这些更新。