使用 Jenkins 和 Docker 进行持续部署

Continuous Deployment using Jenkins and Docker

我们正在为金融应用程序构建基于 java 的高可用性服务。我是使用 Jenkins 管理持续集成的团队的一员。

最近我们也在列表中引入了持续部署,我们选择了 Docker 容器。

这是基础设施:

生产集群将有 3 台 RHEL 机器运行,每台机器上有以下 docker 个容器:

应用程序 IDE 是 Netbeans,源代码在 git.

目前我们正在此基础架构上进行手动部署。

请推荐一些我使用 Jenkins 完成持续部署过程的工具。

  • 您可能希望 jenkins 在每次推送到您的 jenkins 存储库时触发。有一些插件可以帮助您使用 webhook 做到这一点。Gitlab-plugin 是一种解决方案,类似于 Github 和其他 git 解决方案。
  • 与其严重依赖 bash 和 jenkins 配置,不如设置 jenkins pipeline with the jenkins pipeline plugin or even pipeline: multibranch plugin。有了这些,您可以在存储库中的 groovy 代码 (jenkinsfile) 中自动构建,并有可能添加其他插件的功能。
  • 然后您可以使用 docker 管道插件轻松构建 docker 容器,将 docker 图像和 运行 代码推送到 docker 容器中。
  • 我建议在 docker 中构建您的服务,这样您的 jenkins 机器就不会安装所有不同的依赖项(因此可能会出现冲突的版本)。将 docker 容器与所有依赖项一起使用,并使用 groovy.
  • 中的 docker 管道插件在其中 运行 您的构建代码
  • 安装注册表解决方案以将您的 docker 图像推送和拉取到。
  • 使用 Pipeline: Shared Groovy Libraries 从您的 jenkinsfiles 中提取库,以便可以重复使用它们。这些库文件应该有自己的存储库,你的詹金斯知道并保持最新。可能您甚至可以在多个项目之间共享整个管道流程,只需在其 jenkinsfile 中添加参数即可。

很多文字,没有示例。如果您认为某事很有趣并且想查看一些代码,请询问。我目前正在设置所有这些。