Docker与AWS的持续集成

时间:2017-06-12 17:45:11

标签: amazon-web-services docker continuous-integration containers amazon-data-pipeline

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

如果您从CloudFormation部署了原始服务,那么CloudFormation可以非常轻松地将新的任务定义部署到ECS上。

以下是CloudFormation如何将服务部署到EC2容器服务的良好入门者:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-ecs.html

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

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

答案 2 :(得分:0)

对于您描述的方案,您可能需要尝试此示例https://github.com/awslabs/ecs-refarch-continuous-deployment