Docker与AWS持续集成

我目前正在尝试使用CodePipeline自动化我们的开发过程。 我的docker应用程序从Source(Github) – > Builds(AWS CodeBuild) – > Deploy中获取。 在最终部署过程中,我无法修改我的任务定义并重新启动群集任务。 我知道我需要一个CloudFormation模板来执行这些操作,但没有太多关于如何使用CloudFormation(修改我的任务定义和更新我的任务)完成部署过程的文档。 有没有另外一种方法通过AWS自动部署我的容器?

如果您从CloudFormation部署了原始服务,那么CloudFormation使得将新的任务定义部署到ECS上变得非常容易。

以下是CloudFormation如何将服务部署到EC2容器服务的一个很好的开端: http : //docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-ecs.html

一旦从CloudFormation部署了所有部署,您就有两个部署选项:1)使用您需要的新部署部分更新CloudFormation模板,它将为您创build一个更改集并更新您的堆栈。 2)仅使用CloudFormation部署服务并将任务定义作为参数。 这将允许您只修改堆栈的input,而不是每次更新整个事物。

CloudFormation将自动尝试并在堆栈中更新它时为您执行蓝/绿部署。

对于你描述的场景,你可能想尝试一下https://github.com/awslabs/ecs-refarch-continuous-deployment

使用不同的方法进行反复试验后,更新您的ECS任务定义和服务的最好方法是通过AWS CodeBuild通过buildspec.yml的post_build部分中的AWS CLI直接更新它们。 您甚至可以使用使用提交ID设置的环境variables来跟踪每个图像的标记!