ECS 使用 ECR 自动部署
Posted
技术标签:
【中文标题】ECS 使用 ECR 自动部署【英文标题】:ECS auto deploy with ECR 【发布时间】:2019-04-29 20:23:21 【问题描述】:我正在使用 GitHub、Jenkins、AWS ECR、AWS ECS。
我想在 GitHub 有新提交时自动部署。 当 GitHub 有新的提交时,GitHub 将 webhook 发送到 Jenkins,Jenkins 构建图像并使用标签“最新”推送到 ECR。
我想知道如何让我的 ECS 服务重新启动任务并在 ECR 映像更改时自动重新部署映像?
【问题讨论】:
你可能想在devops.stackexchange.com 中询问 【参考方案1】:请勿在此设置中使用 latest
。让 Jenkins 为图像选择一个标签(可能基于源代码控制提交 ID、源代码控制标签名称或时间戳)。赋予它更新 ECS 任务的能力,然后(一旦发生构建并通过适当的启动前测试)让 Jenkins 将任务中的图像标签更改为刚刚构建的内容。 ECS 会看到镜像发生变化,拉取新镜像,并相应地启动容器。
这样做的另外两个充分理由:如果您有明确的版本,您可以拥有一个预生产集群,在那里部署东西,运行测试,然后将相同的版本部署到生产;如果部署失败,您可以通过手动将标签设置回昨天的构建直接回滚,如果您拥有的唯一版本是latest
,这是不可能的。
【讨论】:
Jenkins如何更改任务中的image标签? 也可以使用 --force-new-deployment 参数,它会告诉 ECS 从 ECR 拉取最新的容器镜像,而无需创建新任务。 docs.aws.amazon.com/cli/latest/reference/ecs/…以上是关于ECS 使用 ECR 自动部署的主要内容,如果未能解决你的问题,请参考以下文章
Github 操作将 docker 部署到 AWS ECS ECR