项目部署方法及装置与流程

文档序号:17357238发布日期:2019-04-09 21:47阅读:460来源:国知局
项目部署方法及装置与流程

本发明涉及一种项目部署方法及装置,属于项目开发技术领域。



背景技术:

在目前的项目开发部署过程中,开发者需要先整合好完整的代码,进行手动的编译打包,然后将打包好的文件放入web应用服务器中运行。代码整合过程中存在代码版本新旧的问题,此时会出现人为粗心导致代码整合错误的情况。

此外,手动编译过程耗费大量时间,开发者只能默默等待,如果编译错误,需要去查询编译的日志,定位出错的代码并进行缺陷修复,重新执行手动整合代码、编译、打包、部署的过程。



技术实现要素:

本发明的目的在于提供一种项目部署方法及装置。为达到上述目的,本发明提供如下技术方案:

第一方面,提供了一种项目部署方法,所述方法包括:

获取开发者通过网页web页面配置的git代码仓库的仓库地址;

根据所述仓库地址从gitlab服务端创建的git代码仓库中获取待部署的项目代码;

使用maven工具将所述项目代码打包成docker容器镜像;

使用jenkins持续集成部署工具进行持续部署;

将所述docker容器镜像推送到docker私有仓库,在待部署的服务器上通过docker命令运行所述docker容器镜像。

可选地,所述jenkins持续集成部署工具中集成有代码检查插件和自动化测试插件,所述方法还包括:

在使用所述jenkins持续集成部署工具进行持续部署前,对所述项目代码进行自动化检查和测试。

可选地,所述获取开发者通过网页web页面配置的git代码仓库的仓库地址之前,还包括:

向终端发送所述web页面,所述web页面包括自动化部署控件;所述自动化部署控件用于完成自动化构建、集成、测试、交付和部署过程。

第二方面,提供了一种项目部署装置,所述装置包括:

地址获取模块,用于获取开发者通过网页web页面配置的git代码仓库的仓库地址;

代码获取模块,用于根据所述仓库地址从gitlab服务端创建的git代码仓库中获取待部署的项目代码;

代码打包模块,用于使用maven工具将所述项目代码打包成docker容器镜像;

持续部署模块,用于使用jenkins持续集成部署工具进行持续部署;

服务部署模块,用于将所述docker容器镜像推送到docker私有仓库,在待部署的服务器上通过docker命令运行所述docker容器镜像。

可选地,所述jenkins持续集成部署工具中集成有代码检查插件和自动化测试插件,所述装置还包括:

代码测试模块,用于在使用所述jenkins持续集成部署工具进行持续部署前,对所述项目代码进行自动化检查和测试。

可选地,所述装置还包括:

页面发送模块,用于在所述获取开发者通过网页web页面配置的git代码仓库的仓库地址之前,向终端发送所述web页面,所述web页面包括自动化部署控件;所述自动化部署控件用于完成自动化构建、集成、测试、交付和部署过程。

本发明的有益效果在于:通过获取开发者通过网页web页面配置的git代码仓库的仓库地址;根据仓库地址从gitlab服务端创建的git代码仓库中获取待部署的项目代码;使用maven工具将项目代码打包成docker容器镜像;使用jenkins持续集成部署工具进行持续部署;将docker容器镜像推送到docker私有仓库,在待部署的服务器上通过docker命令运行所述docker容器镜像;可以解决人工打包编译、部署代码的效率较低的问题;由于集成代码管理控制工具git、代码编译工具maven、持续集成持续部署工具jenkins,一旦提交代码成功,就能自动化进行构建、集成、测试、交付成docker容器镜像,通过docker容器技术自动部署服务,实现自动化应用服务部署;因此可以提高项目部署的效率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。

附图说明

图1是本申请一个实施例提供的项目部署方法的流程图;

图2是本申请一个实施例提供的项目部署装置的框图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

首先,对本申请涉及的若干名词进行介绍。

1、maven工具:是指是基于项目对象模型(projectobjectmodel,pom),可以通过一段描述信息来管理项目的构建、报告和文档的软件项目管理工具。换句话说,maven是一套强大的自动化构建工具,覆盖了项目的编译、测试、运行和打包的过程。maven提供了仓库的概念,统一地帮助开发者管理第三方jar包。

2、docker容器镜像:docker是一种开源的容器虚拟化技术,支持为应用创建轻量级的、可移植的、自给自足的容器。开发者编译测试通过的容器可以批量地在生产环境中进行部署。比如:docker容器镜像可以应用在web应用的自动化打包和发布;自动化测试和持续集成、发布;在服务型环境中部署和调整数据库或其他的后台应用的场景中。

docker的优势主要体现在持续集成、版本控制、可移植性、隔离性和安全性等方面。而docker能够实现持续集成和版本控制以及可移植性等功能是依赖于其文件组织方式。

3、jenkins:是一个持续集成框架,可以在开发者提交项目的时候进行自动测试、运行和部署项目。jenkins支持多种语言的项目。jenkins持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,它有利于减少重复过程以节省时间、费用和工作量。

本申请中,以各个实施例提供的项目部署方法中各个步骤的执行主体为服务器为例进行说明,示意性地,该服务器为web服务器。

图1是本申请一个实施例提供的项目部署方法的流程图,该方法至少包括以下几个步骤:

步骤101,获取开发者通过网页web页面配置的git代码仓库的仓库地址。

可选地,在本步骤之前,服务器向终端发送web页面,该web页面包括自动化部署控件;自动化部署控件用于完成自动化构建、集成、测试、交付和部署过程。比如:自动化部署控件在被触发时发送仓库地址。相应地,终端接收到web页面后,在web页面中接收开发者输入的git代码仓库的仓库地址,并接收对自动化部署控件的触发操作;在接收到该触发操作时,将该仓库地址发送至服务器。服务器接收git代码仓库的仓库地址。

可选地,终端中安装有web客户端,该终端可以是计算机、手机、平板电脑等设备,本实施例对此不作限定。

步骤102,根据仓库地址从gitlab服务端创建的git代码仓库中获取待部署的项目代码。

可选地,项目代码可以是web页面所属的终端发送至git代码仓库的;或者,是其它终端发送至git代码仓库的,本实施例不对项目代码的来源作限定。

步骤103,使用maven工具将项目代码打包成docker容器镜像。

步骤104,使用jenkins持续集成部署工具进行持续部署。

可选地,jenkins持续集成部署工具中集成有代码检查插件和自动化测试插件;此时,服务器在使用jenkins持续集成部署工具进行持续部署前,还可以对项目代码进行自动化检查和测试。比如:使用该jenkins持续集成部署工具中的代码检查插件对项目代码进行自动化检查;使用该jenkins持续集成部署工具中的自动化测试插件对项目代码进行测试。

步骤105,将docker容器镜像推送到docker私有仓库,在待部署的服务器上通过docker命令运行docker容器镜像。

可选地,待部署的服务器为docker私有仓库对应的服务器。

综上所述,本实施例提供的项目部署方法,通过获取开发者通过网页web页面配置的git代码仓库的仓库地址;根据仓库地址从gitlab服务端创建的git代码仓库中获取待部署的项目代码;使用maven工具将项目代码打包成docker容器镜像;使用jenkins持续集成部署工具进行持续部署;将docker容器镜像推送到docker私有仓库,在待部署的服务器上通过docker命令运行docker容器镜像;可以解决人工打包编译、部署代码的效率较低的问题;由于集成代码管理控制工具git、代码编译工具maven、持续集成持续部署工具jenkins,一旦提交代码成功,就能自动化进行构建、集成、测试、交付成docker容器镜像,通过docker容器技术自动部署服务,实现自动化应用服务部署;可以提高项目部署的效率。

图2是本申请另一个实施例提供的项目部署装置的框图。该装置至少包括以下几个模块:地址获取模块210、代码获取模块220、代码打包模块230、持续部署模块240和镜像发送模块250。

地址获取模块210,用于获取开发者通过网页web页面配置的git代码仓库的仓库地址;

代码获取模块220,用于根据所述仓库地址从gitlab服务端创建的git代码仓库中获取待部署的项目代码;

代码打包模块230,用于使用maven工具将所述项目代码打包成docker容器镜像;

持续部署模块240,用于使用jenkins持续集成部署工具进行持续部署;

服务部署模块250,用于将所述docker容器镜像推送到docker私有仓库,在待部署的服务器上通过docker命令运行所述docker容器镜像。

可选地,所述jenkins持续集成部署工具中集成有代码检查插件和自动化测试插件,所述装置还包括:

代码测试模块,用于在使用所述jenkins持续集成部署工具进行持续部署前,对所述项目代码进行自动化检查和测试。

可选地,所述装置还包括:

页面发送模块,用于在所述获取开发者通过网页web页面配置的git代码仓库的仓库地址之前,向终端发送所述web页面,所述web页面包括自动化部署控件;所述自动化部署控件用于完成自动化构建、集成、测试、交付和部署过程。

相关内容参考上述方法实施例。

需要说明的是:上述实施例中提供的项目部署装置在进行项目部署时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将项目部署装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的项目部署装置与项目部署方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1