我正在使用GitHub,Jenkins,AWS ECR,AWS ECS。
我想在GitHub有新提交时自动部署。 当GitHub有了新提交时,GitHub将Webhook发送给Jenkins,Jenkins构建图像并使用标签“ latest”推送到ECR。
我想知道如何在ECR映像更改后自动执行ECS服务重启任务并自动重新部署映像吗?
答案 0 :(得分:1)
在此设置中请勿使用latest
。让Jenkins为图像选择一个标签(可能基于源控件提交ID,源控件标签名称或时间戳)。赋予它更新ECS任务的能力,然后(一旦构建完成并经过适当的启动前测试),让Jenkins将任务中的图像标签更改为刚刚构建的图像。 ECS将看到该映像已更改,请拉出新映像,并相应地启动容器。
以这种方式执行操作的另外两个很好的理由:如果您有显式版本,则可以有一个生产前群集,在其中进行部署,运行测试,然后将相同版本部署到生产中。并且如果部署出现问题,您可以通过手动将标记设置回昨天的版本来直接回滚,如果唯一的版本是latest
,则不可能。