我正在使用GitHub,Jenkins,AWS ECR,AWS ECS。
我想在GitHub有新提交时自动部署。
当GitHub有新提交时,GitHub将webhook发送给Jenkins,Jenkins构建图像并推送到带有标签“latest”的ECR。
我想知道如何使ECS服务重启任务并在ECR镜像更改后自动重新部署镜像吗?
最佳答案
在此设置中不要使用latest
。让Jenkins为图像选择一个标签(可能基于源控件提交ID,源控件标签名称或时间戳)。赋予它更新ECS任务的能力,然后(一旦构建完成并经过适当的启动前测试),让Jenkins将任务中的图像标签更改为刚刚构建的图像。 ECS将看到镜像已更改,拉出新镜像并相应地启动容器。
用这种方式做事的另外两个很好的理由:如果您有明确的版本,则可以有一个生产前群集,在其中进行部署,运行测试,然后将相同版本部署到生产中。如果部署失败,则可以通过手动将标记设置回昨天的版本来直接回滚,如果唯一的版本是latest
,则不可能。
关于amazon-web-services - ECS与ECR自动部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53510783/