2017-04-05 28 views
-1

我們正在爲金融應用程序構建基於Java的高可用性服務。我是使用Jenkins管理持續集成的團隊的一員。使用Jenkins和Docker進行連續部署

最近我們也在列表中引入了連續部署,並且我們選擇了Docker容器。

這裏的基礎設施:

的生產集羣將有3臺RHEL機器上運行他們每個人以下泊塢窗容器:Wildfly的

  • 3實例
  • 卡桑德拉
  • Nginx的

應用程序IDE是Netbeans和源代碼是在飯桶。

目前我們正在這個基礎架構上進行手動部署。

請給我推薦一些工具,我使用Jenkins來完成持續部署過程。

回答

0
  • 您可能希望jenkins在每次推送到jenkins存儲庫時觸發。有一些插件可以幫助你用webhook做到這一點。 Gitlab-plugin是一個針對Github和其他git解決方案的類似解決方案。
  • 而不是嚴重依賴bash和jenkins配置,您可能需要使用jenkins管道插件或甚至pipeline: multibranch plugin來設置jenkins pipeline。有了這些,你可以在一個倉庫中自動化Groovy代碼(jenkinsfile)中的構建,並且可以添加構建它們的其他插件的功能。
  • 然後,您可以使用docker管道插件輕鬆構建docker容器,推入docker圖像並在Docker容器中運行代碼。
  • 我建議在docker中構建你的服務,這樣你的jenkins機器就不會安裝所有不同的依賴關係(因此可能會有衝突的版本)。使用Docker容器的所有依賴關係,並使用groovy中的docker管道插件在那裏運行構建代碼。
  • 安裝註冊表解決方案以將泊塢窗圖像推送到。
  • 使用Pipeline: Shared Groovy Libraries從jenkins文件中提取庫,以便它們可以重用。這些庫文件應該有你自己的倉庫,你的詹金斯知道並保持最新。可能甚至可以在多個項目之間共享整個管道進程,這些進程只需在jenkins文件中添加參數即可。

很多文字和沒有例子。如果你認爲某些東西很有趣,並且你想看到一些代碼就問。我目前正在設置所有這些。

+0

謝謝你的答覆herm。我的理解是運行管道,我需要使目標機器成爲詹金斯節點。它是否正確?我需要在詹金斯大師上安裝Docker嗎? –

+0

如果你能指導我們,這將是非常有幫助的herm。大多數時候,由於運行在公司代理之後,我面臨着問題。我會非常感興趣的,看看如何設置將工作,並且也想貢獻 –

+0

任何jenkins機器上你想要執行碼頭命令將需要碼頭安裝。目標機器與詹金斯無關。你可以從詹金斯SSH到拉你新建的圖像,並運行碼頭集裝箱。 – herm