2015-10-08 117 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臺服務器拉取最新的圖像並重新啓動容器。

但是,強烈建議您採取一些策略,如果發生某種情況,可以採用藍綠原理和回滾。