2015-10-08 120 views
2

我实际上使用了一个允许我在集成/部署系统中进行自动化的堆栈。使用docker连续部署

其实我的工作就像下面:

  • 我把我的代码到GitHub的仓库
  • 詹金斯嗅着回购和建设软,发射单元测试
  • 如果单元测试(或其他种类的测试,无论如何),它会通知连接到我的服务器(我的情况是3),通知Rundeck连接到SSH并告诉:“嘿家伙,你必须从github提取新软件版本”,然后重新启动相关服务和我的软件现在是最新的

好的,告诉我,如果我错了,但它似乎是一个很好的解决方案吗?

然后,我想集装箱我的应用程序,现在,我有一些头痛。

首先解决

其实,我想知道的是这样的:

  • 推到github上
  • 詹金斯测试,构建搬运工图像
  • Rundeck推泊坞窗枢纽通知3台服务器从集线器中取出新映像并通过SSH运行它

问题:将在另一个容器中运行(同一图像的多个搬运工运行,但具有不同的版本:()

第二溶液

第二种解决方案是:

  • 推送到github
  • 詹金斯测试并告诉rundeck测试成功,没有创建“真正的构建”(只有一个测试)
  • Rundeck连接到通过ssh运行容器并要求拉的修改,然后重新启动泊坞窗容器

问题:我被迫在我的所有容器

我不知道如何使用ssh绕过我的问题,什么是最好的解决办法...

感谢您的帮助

回答

0

我看不出有任何解决问题1.

1.Build产版与詹金斯

2.Push它(通过詹金斯)您的私人码头工人注册表

3。告诉Rundeck/Ansible/Chef/Puppet要求3台服务器拉取最新的图像并重新启动容器。

但是,强烈建议您采取一些策略,如果发生某种情况,可以采用蓝绿原理和回滚。