2017-04-05 110 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