1. 概述


        本文主要介绍持续集成的搭建方式,采用Docker的方式去搭建Jenkins环境,另外会涉及到SpringBoot和Git等技术。


2. 什么是持续集成


传统的软件开发流程如下:


        1、项目经理分配模块给开发人员


        2、每个模块的开发人员并行开发,并进行单元测试


        3、开发完毕,将代码集成部署到测试服务器,测试人员进行测试


        4、测试人员发现bug,提交bug、开发人员修改bug


        5、bug修改完毕再次集成、测试


docker持续集成和持续部署 基于docker的持续集成系统_Docker


但是这样就出现了如下问题:


        1、模块之间依赖关系复杂,在集成时发现大量bug


        2、测试人员等待测试时间过长


        3、软件交付无法保障


那我们又该如何解决上述问题呢?可以采用持续集成来解决上述问题,那持续集成又是什么呢?大师Martin Fowler对 持续集成 是这样定义的:


        持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。


持续集成的好处:


        1、自动化集成部署,提高了集成效率。


        2、更快的修复问题。


        3、更快的进行交付。


        4、提高了产品质量。


本文通过下图的模式进行持续集成的方案:


  • 开发人员开发代码,推送到Git服务器中
  • 当Git服务器中的代码发生变化时,会触发配置在Git服务器中的钩子地址,通知到Jenkins
  • Jenkins把代码下载下来,通过Maven,build成Docker镜像
  • 再把Docker镜像推送到Docker仓库中
  • 再从Docker仓库中构建出可以运行的Docker容器

docker持续集成和持续部署 基于docker的持续集成系统_Docker_02



接下来,我们介绍下如何构建上述环境。