我目前正在尝试使用CodePipeline自动化我们的开发过程。我的码头应用程序从Source(Github) - > Builds(AWS CodeBuild) - > Deploy中获取。在最终部署过程中,我无法修改我的任务定义并重新启动群集任务。我知道我需要一个CloudFormation模板来执行这些操作,但没有太多关于如何使用CloudFormation完成部署过程的文档(修改我的任务定义并更新我的任务)。有没有另一种方法通过AWS自动部署我的容器?Docker与AWS持续集成
回答
如果您从CloudFormation部署了原始服务,那么CloudFormation可以非常容易地将新任务定义部署到ECS上。
这里是CloudFormation将如何部署为您服务到EC2集装箱服务一个很好的入门:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-ecs.html
一旦你拥有了一切从CloudFormation部署您对部署2种选择: 1)更新CloudFormation模板与您需要的新部署组件,它将为您创建更改集并更新您的堆栈。 2)仅使用CloudFormation部署服务并将任务定义作为参数。这将允许您只修改堆栈的输入,而不是每次都更新整个内容。
当您在堆栈中更新CloudFormation时,CloudFormation将自动尝试并为您执行蓝/绿部署。
谢谢你的帮助戴维斯。只是重新迭代,我应该使用这个模板来管理我的ECS实例/容器/图像,并在我的管道中使用它。但无论如何,我可以修改这个脚本,或者是否有任何现有的脚本将重新启动我的任务指向:最新的图像? – Serey
我过去的做法是使用一个CF模板为我想要部署的每个服务构建ECS群集和一个模板。 如果要将服务更新为最新的任务定义/泊坞窗图像,请将CF更改为指向最新的ECR图像/任务定义(无论您将哪个设置为模板参数)。 CF会为你部署它。您可以通过控制台或通过CLI和脚本将其写入CI/CD管道。 我个人更喜欢将ECR图像作为参数,因为它会更新和重新部署任务定义 – davis190
我想我把所有的东西都放在一起,我唯一缺少的是一个CF模板,它将我的任务定义指向成功构建的最新版本,感谢您的帮助! – Serey
对于您所描述的,你可以试试这个样本https://github.com/awslabs/ecs-refarch-continuous-deployment
感谢您的帮助!不确定你以前是否使用过这个,但service.yaml脚本是否允许重新定义任务定义以指向最新的图像构建? – Serey
试错用不同的方法后,最好的方式来更新您的ECS任务定义和服务是通过AWS直接更新他们的方案通过AWS CodeBuild在buildspec.yml的post_build部分中使用CLI。您甚至可以使用使用提交ID设置的环境变量来跟踪每个图像的标记!
- 1. 与Git的持续集成
- 2. 与Grails持续集成
- 3. 与VSTS的持续集成
- 4. 与GitHub的持续集成
- 5. 与mysql的持续集成
- 6. 持续集成
- 7. 与Laravel持续集成与开发
- 8. TFS持续集成
- 9. python持续集成
- 10. C持续集成
- 11. TypeScript持续集成
- 12. GreaseMonkey持续集成
- 13. 持续集成 - 多久会持续
- 14. 与TeamCity和Clearcase的持续集成
- 15. 自动部署与gitlab持续集成
- 16. 与Surround SCM的持续集成
- 17. MS单元与TFS的持续集成
- 18. iOS - 与Jenkins/Fastlane持续集成
- 19. 与.net和svn的持续集成
- 20. TFS 2012 - 与网站持续集成
- 21. 与Laravel包和Behat的持续集成
- 22. 包装TFS与JBOSS 2.4.11持续集成
- 23. 与React Native的持续集成
- 24. 与Reporting Services的持续集成
- 25. 与GTest和Buildbot的持续集成
- 26. 与ASP.NET MVC和TFS的持续集成
- 27. 与Git的选择性持续集成
- 28. 与PhoneGap的TFS持续集成构建
- 29. 与Xcode机器人持续集成
- 30. BitBucket与Bamboo OnDemand持续集成
你在哪里部署?虽然有一些脚本来更新服务,但Amazon EC2容器服务可以轻松部署Docker容器。 – stdunbar
我正在尝试部署到EC2容器服务。我知道我必须更新任务定义并将服务指向已部署的新映像。有没有现成的模板可以让我触发CloudFormation来为我做更新服务? – Serey