本技术涉及计算机,尤其涉及一种代码离线部署方法、装置、计算机设备及存储介质。
背景技术:
1、随着信息技术的不断发展,为了快速满足用户日新月异的需求,产品的迭代速度非常快;参与大型业务开发的团队也逐渐增大,出现多个团队同时维护一个产品。在这种背景和项目需求下,持续集成的开发方式应运而生,完整的持续集成通常包含代码版本控制、代码静态检查、编译、单元测试、打包、部署和自动化测试等过程。通常完整的持续集成开发是由持续集成服务器完成的。
2、目前,持续集成服务器在对代码文件打包部署时,通常需要连接外部网络下载打包所依赖的资源包,才能完成所述代码文件的打包。然而,一些企业处于安全性的考虑,需要进行现场交付、代码审计、打包部署等环节,为了避免外部网络给企业的各个服务器造成安全隐患,通常不允许企业各个服务器连接外部网络,因此,传统技术限制导致这些环节存在安全性和质量保障方面的困扰。
技术实现思路
1、本技术实施例的目的在于提出一种代码离线部署方法、装置、计算机设备及存储介质,以解决客户端代码部署过程中的安全性问题。
2、为了解决上述技术问题,本技术实施例提供一种代码离线部署方法,采用了如下所述的技术方案:
3、获取部署文件,并对所述部署文件进行解压,得到外部配置文件、打包脚本和镜像文件,其中,所述外部配置文件包括代码基准线信息;
4、基于所述代码基准线信息,从远端服务器克隆代码到本地,得到本地代码,并将所述本地代码存储至指定位置;
5、在内网或无网环境下,采用所述打包脚本和镜像文件对所述本地代码进行依赖关联和镜像构建,得到docker部署镜像;
6、采用所述部署镜像执行部署处理。
7、进一步地,在所述获取部署文件的步骤之前,还包括:
8、根据联网模块和依赖包构建所述镜像文件;
9、将所述镜像文件存储于合法路径,其中,所述合法路径基于所述依赖包中的依赖关系进行确定。
10、进一步地,所述在内网或无网环境下,采用所述打包脚本和镜像文件对所述本地代码进行依赖关联和镜像构建,得到docker部署镜像,包括:
11、获取所述镜像文件中的依赖包,其中,所述依赖包在外部配置文件中被指定,并在构建镜像过程中被自动下载和安装;
12、采用打包脚本判断生成部署镜像所需依赖是否存在于所述依赖包中,其中,所述打包脚本用于对依赖包中的内容进行解析,并自动化打包和构建本地代码;
13、若存在,则基于所述依赖包中的依赖生成静态产物命令,若不存在,则通过所述联网模块获取所需依赖,得到依赖文件;
14、基于所述本地代码、所述静态产物命令和通过所述依赖文件,执行自动化构建指令,生成所述部署镜像。
15、进一步地,所述代码基准线信息包括操作指令和/或代码库分支信息,用以确定代码库的状态和版本,所述基于所述代码基准线信息,从远端服务器克隆代码到本地,得到本地代码包括:
16、根据所述操作指令和/或代码库分支信息,确定待部署的代码分支;
17、从远端服务器克隆所述代码分支中的代码到本地,得到本地代码。
18、进一步地,所述外部配置文件还包括特定路径,所述特定路径用于存放用于安装所述镜像文件的相关参数,在所述对所述部署文件进行解压,得到外部配置文件、打包脚本和镜像文件之后,所述方法还包括:
19、在从所述特定路径获取安装所述镜像文件的相关参数,并根据所述相关参数对所述镜像文件进行安装。
20、进一步地,在所述将所述本地代码存储至指定位置的步骤之后,还包括:
21、从所述本地代码中提取审计代码,并将所述审计代码发送给客户端,以使所述客户端根据所述审计代码进行合规审计。
22、进一步地,所述采用所述部署镜像执行部署处理,包括:
23、向客户端测试环境部署所述部署镜像;
24、在检测到部署完成的消息时,对所述部署镜像分别进行稳定性和功能性测试,得到稳定测试结果和功能测试结果;
25、若所述稳定测试结果和所述功能测试结果均达到预期条件,则确认部署成功。
26、为了解决上述技术问题,本技术实施例还提供一种代码离线部署装置,采用了如下所述的技术方案:
27、获取模块,用于获取部署文件,并对所述部署文件进行解压,得到外部配置文件、打包脚本和镜像文件,其中,所述外部配置文件包括代码基准线信息;
28、克隆模块,用于基于代码基准线信息,从远端服务器克隆代码到本地,得到本地代码,并将所述本地代码存储至指定位置;
29、构建模块,用于在内网或无网环境下,采用所述打包脚本和镜像文件对所述本地代码进行依赖关联和镜像构建,得到docker部署镜像;
30、部署模块,用于采用所述docker部署镜像在客户端服务器执行服务部署处理。
31、进一步地,所述代码离线部署装置还包括:
32、生成模块,用于根据联网模块和依赖包构建所述镜像文件;
33、存储模块,用于将所述镜像文件存储于合法路径,其中,所述合法路径基于所述依赖包中的依赖关系进行确定。
34、进一步地,所述构建模块包括:
35、依赖包获取单元,用于获取所述镜像文件中的依赖包,其中,所述依赖包在外部配置文件中被指定,并在构建镜像过程中被自动下载和安装;
36、依赖判断单元,用于采用打包脚本判断生成部署镜像所需依赖是否存在于所述依赖包中,其中,所述打包脚本用于对依赖包中的内容进行解析,并自动化打包和构建本地代码;
37、判断执行单元,用于若存在,则基于所述依赖包中的依赖生成静态产物命令,若不存在,则通过所述联网模块获取所需依赖,得到依赖文件;
38、镜像生成单元,用于基于所述本地代码、所述静态产物命令和通过所述依赖文件,执行自动化构建指令,生成所述部署镜像。
39、进一步地,所述代码离线部署装置还包括:
40、审计模块,用于从所述本地代码中提取审计代码,并将所述审计代码发送给客户端,以使所述客户端根据所述审计代码进行合规审计。
41、进一步地,所述部署模块包括:
42、部署单元,用于向客户端测试环境部署所述部署镜像;
43、测试单元,用于在检测到部署完成的消息时,对所述部署镜像分别进行稳定性和功能性测试,得到稳定测试结果和功能测试结果;
44、结果确定单元,用于若所述稳定测试结果和所述功能测试结果均达到预期条件,则确认部署成功。
45、为了解决上述技术问题,本技术实施例还提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上所述的代码离线部署方法的步骤。
46、为了解决上述技术问题,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的代码离线部署方法的步骤。
47、与现有技术相比,本技术实施例主要有以下有益效果:通过获取部署文件,并对部署文件进行解压,得到外部配置文件、打包脚本和镜像文件,其中,所述外部配置文件包括代码基准线信息;基于所述代码基准线信息,从远端服务器克隆代码到本地,得到本地代码,并将本地代码存储至指定位置;在内网或无网环境下,采用打包脚本和镜像文件对本地代码进行依赖关联和镜像构建,得到docker部署镜像,采用docker部署镜像在客户端服务器执行服务部署处理,通过关联依赖进行镜像构建,使得镜像包含部署所需的各个依赖组件,从而在无网或内网环境下可直接进行部署,而无需联网获取代码或组件,提高客户端进行代码部署的安全性。