我正在使用 GitHub、Jenkins、AWS ECR、AWS ECS。
我想在 GitHub 有新提交时自动部署。当 GitHub 有新的提交时,GitHub 将 webhook 发送到 Jenkins,Jenkins 构建图像并使用标签“最新”推送到 ECR。
我想知道如何使我的 ECS 服务重新启动任务并在 ECR 映像更改时自动重新部署映像?
我正在使用 GitHub、Jenkins、AWS ECR、AWS ECS。
我想在 GitHub 有新提交时自动部署。当 GitHub 有新的提交时,GitHub 将 webhook 发送到 Jenkins,Jenkins 构建图像并使用标签“最新”推送到 ECR。
我想知道如何使我的 ECS 服务重新启动任务并在 ECR 映像更改时自动重新部署映像?
不要latest
在此设置中使用。让 Jenkins 为图像选择一个标签(可能基于源代码控制提交 ID、源代码控制标签名称或时间戳)。赋予它更新 ECS 任务的能力,然后(一旦构建发生并通过适当的启动前测试)让 Jenkins 将任务中的图像标签更改为刚刚构建的内容。ECS 会看到镜像发生变化,拉取新镜像,并相应地启动容器。
这样做的另外两个很好的理由:如果你有明确的版本,你可以有一个预生产集群,在那里部署东西,运行测试,然后将相同的版本部署到生产;如果部署失败,您可以通过手动将标签设置回昨天的构建来直接回滚,如果您拥有的唯一版本是latest
.