amazon-web-services - ECS与ECR自动部署

标签 amazon-web-services docker amazon-ecs autodeploy amazon-ecr

我正在使用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/

相关文章:

amazon-web-services - 亚马逊云服务器 : 503 Service Temporarily Unavailable

javascript - 如何为 Amazon ECS 上托管的服务器运行 Node.js 工作线程?

typescript - AWS CDK - 不能在构造 ID 中使用 token - 如何根据其他构造的名称动态命名构造?

amazon-web-services - AWS CloudFormation:如何引用 AWS::IAM::Policy 内另一个堆栈中定义的角色

amazon-s3 - 用于限制对存储桶的公共(public)访问但允许引用域的 AWS 存储桶策略

jenkins - Docker - 从一个链接容器向另一个容器发出命令

docker - 如何通知应用程序有关 kubernetes 中更新的配置文件?

linux - 如何在不停止的情况下在 Docker 容器中运行 Nginx?

amazon-web-services - ECS Fargate 任务无法访问另一个账户中的 s3

amazon-web-services - 用于创建 ECS 服务的 Cloudformation 模板卡在 CREATE_IN_PROGRESS 中