使用 Jenkins 或 Job Scheduler 在 AWS ECS 上自动部署 Docker 容器
Posted
技术标签:
【中文标题】使用 Jenkins 或 Job Scheduler 在 AWS ECS 上自动部署 Docker 容器【英文标题】:Automatic deployment of Docker containers on AWS ECS using Jenkins or Job Scheduler 【发布时间】:2016-05-20 22:32:56 【问题描述】:目前我们构建 Docker 容器并将它们发布到 Amazon ECR。我们已经创建了 TaskDefinition,并且能够在 ECS 集群上手动部署它们。因此,新部署需要手动更新 TaskDefinition。
现在我们希望自动化部署,因此当使用 Jenkins 成功构建 Docker 映像并发布到 ECR 存储库时,我们希望将当前运行的版本替换为新构建的版本。
接下来,我们希望让人们有机会启动 1 个或多个 docker 容器组合的特定版本。关于我们如何在不手动更新 TaskDefinitions 的情况下实现连续循环的任何建议?
【问题讨论】:
【参考方案1】:This article 描述了如何使用 Jenkins 对 ECS 进行持续部署。它在构建映像并推送后使用 shell 脚本以新的任务定义修订更新 ECS 服务。希望能帮助到你。
【讨论】:
文章写完两年多了,还没有新的方法吗?【参考方案2】:一个更简单的解决方案可能是从这里使用 ecs-deploy 脚本:
https://github.com/silinternational/ecs-deploy
在我的容器构建并部署到 dockerhub 之后,只需:
ecs-deploy -k $AWS_KEY -s $AWS_SECRET -r $AWS_REGION -c $CLUSTER_NAME -n $SERVICE_NAME -i $DOCKER_IMAGE_NAME
就是这样。
【讨论】:
这比答案中链接的文章更有用,它在尝试使用生成的 JSON 文件时会给我带来错误。未来读者请注意:ecs-deploy 仅更新任务定义的 1 个容器,因此如果您有多个容器,则需要使用不同的参数多次运行它,或者使用其他解决方案。 如何在VSTS powershell中安装aws-cli?以上是关于使用 Jenkins 或 Job Scheduler 在 AWS ECS 上自动部署 Docker 容器的主要内容,如果未能解决你的问题,请参考以下文章
使用 Jenkins 或 Job Scheduler 在 AWS ECS 上自动部署 Docker 容器
Toad For Oracle中的不同作业,Sched Chain,Sched Job,Sched Windows和Schedule Job类