一种基于Docker的代码检查方法及代码检查服务器技术

技术编号:30272617 阅读:23 留言:0更新日期:2021-10-09 21:29
本申请公开了一种基于Docker的代码检查方法及代码检查服务器,可以支持不同语言、工具的扫描,可以自动管控代码的扫描检查和提高对不同的操作系统的兼容性,便于掌控代码的正确性和规范性、提高软件开发者的代码编写的质量要求。该方法包括:获取预先配置的扫描信息;启动流水线引擎,由流水线引擎基于扫描信息启动至少一个Docker扫描工具镜像;通过至少一个Docker扫描工具镜像对代码进行实时扫描,获得扫描结果,并将扫描结果保存到虚拟服务器的指定路径中;从指定路径中读取扫描结果,对扫描结果进行解析、验证处理,在扫描结果验证通过后,将扫描结果入库;对入库的扫描结果进行数据处理,获得并展示告警结果。获得并展示告警结果。获得并展示告警结果。

【技术实现步骤摘要】
一种基于Docker的代码检查方法及代码检查服务器


[0001]本申请涉及代码检查
,特别是涉及一种基于Docker的代码检查方法及代码检查服务器。

技术介绍

[0002]随着软件行业的飞速发展,软件的需求量越来越大,软件应用环境日益复杂,新业务层出不穷,旧业务不断迭代更新,软件开发团队越来越大,开发人员水平参差不齐。因此,为保障软件的研发质量,必须对研发交付的代码进行质量检查。
[0003]目前,代码检查需要人工去参与评审软件设计、编码、实现的正确性。由于业务代码的复杂度、重复率越来越高,人工检查业务代码时,需要耗费大量的人力和时间成本,软件项目越大往往存在的问题也越多,同时在不同的操作系统中也会存在扫描兼容性问题。

技术实现思路

[0004]基于此,本申请提供一种基于Docker的代码检查方法及代码检查服务器,用于解决现有技术中人工检查业务代码时,需要耗费大量的人力和时间成本,软件项目越大往往存在的问题也越多,同时在不同的操作系统中也会存在扫描兼容性问题等问题,以达到自动管控代码的扫描检查和提高对不同的操作系统的兼容性的效果,可以节省人力物力。
[0005]第一方面,本申请实施例提供一种基于Docker的代码检查方法,包括:获取预先配置的扫描信息;启动流水线引擎,由所述流水线引擎基于所述扫描信息启动至少一个Docker扫描工具镜像;通过所述至少一个Docker扫描工具镜像对代码进行实时扫描,获得扫描结果,并将所述扫描结果保存到虚拟服务器的指定路径中;从所述指定路径中读取所述扫描结果,对所述扫描结果进行解析、验证处理,在所述扫描结果验证通过后,将所述扫描结果入库;对入库的扫描结果进行数据处理,获得告警结果,并展示所述告警结果。
[0006]在一种可能的设计中,所述扫描信息包括:操作系统、扫描代码库、代码编写语言、Docker扫描工具、扫描规则、扫描规则集和扫描方法,所述扫描规则集对应多个所述Docker扫描工具。
[0007]在一种可能的设计中,所述至少一个Docker扫描工具镜像由所述流水线引擎基于所述扫描信息采用多线程方式启动。
[0008]在一种可能的设计中,所述至少一个Docker扫描工具镜像由所述流水线引擎基于所述扫描信息,调用Docker API,采用多线程方式启动。
[0009]在一种可能的设计中,将所述扫描结果保存到虚拟服务器的指定路径中,包括:采用JSON格式、容器数据卷挂载方式将所述扫描结果保存至所述指定路径中。
[0010]在一种可能的设计中,对所述扫描结果进行解析、验证处理,包括:
通过调用parseCodeScanResult接口对所述扫描结果进行解析处理,获得解析后的扫描结果;采用JSON格式输出所述解析后的扫描结果;通过执行verifyCodeScanResult接口对所述解析后的扫描结果进行验证处理。
[0011]在一种可能的设计中,对入库的扫描结果进行数据处理,获得告警结果,包括:对所述入库的扫描结果进行数据分析、报表展示、数据度量,获得所述告警结果,所述告警结果包括所述代码存在的质量问题和安全漏洞。
[0012]在一种可能的设计中,所述方法还包括:通过所述流水线引擎开启agent服务,由所述agent服务监听所述至少一个Docker扫描工具镜像的进程状态,检查所述至少一个Docker扫描工具镜像实时扫描所述代码的扫描情况,并每隔预设时长采用循环构建任务心跳方式将所述扫描情况和所述进程状态上报到所述流水线引擎;所述扫描情况包括扫描进度和扫描日志;其中,当所述agent服务没有上报所述扫描情况时,通过所述流水线引擎停止运行流水线;获取所述流水线引擎发送的所述扫描情况和所述进程状态。
[0013]第二方面,本申请实施例提供一种代码检查服务器,包括:接收单元,用于获取预先配置的扫描信息;处理单元,用于启动流水线引擎,由所述流水线引擎基于所述扫描信息启动至少一个Docker扫描工具镜像;通过所述至少一个Docker扫描工具镜像对代码进行实时扫描,获得扫描结果,并将所述扫描结果保存到虚拟服务器的指定路径中;从所述指定路径中读取所述扫描结果,对所述扫描结果进行解析、验证处理,在所述扫描结果验证通过后,将所述扫描结果入库;输出单元,用于对入库的扫描结果进行数据处理,获得告警结果,并展示所述告警结果。
[0014]在一种可能的设计中,所述扫描信息包括:操作系统、扫描代码库、代码编写语言、Docker扫描工具、扫描规则、扫描规则集和扫描方法,所述扫描规则集对应多个所述Docker扫描工具。
[0015]在一种可能的设计中,所述至少一个Docker扫描工具镜像由所述流水线引擎基于所述扫描信息采用多线程方式启动。
[0016]在一种可能的设计中,所述至少一个Docker扫描工具镜像由所述流水线引擎基于所述扫描信息,调用Docker API,采用多线程方式启动。
[0017]在一种可能的设计中,所述处理单元具体用于:采用JSON格式、容器数据卷挂载方式将所述扫描结果保存至所述指定路径中。
[0018]在一种可能的设计中,所述处理单元具体用于:通过调用parseCodeScanResult接口对所述扫描结果进行解析处理,获得解析后的扫描结果;采用JSON格式输出所述解析后的扫描结果;通过执行verifyCodeScanResult接口对所述解析后的扫描结果进行验证处理。
[0019]在一种可能的设计中,所述输出单元具体用于:对所述入库的扫描结果进行数据分析、报表展示、数据度量,获得所述告警结果,
所述告警结果包括所述代码存在的质量问题和安全漏洞。
[0020]在一种可能的设计中,所述处理单元还用于:通过所述流水线引擎开启agent服务,由所述agent服务监听所述至少一个Docker扫描工具镜像的进程状态,检查所述至少一个Docker扫描工具镜像实时扫描所述代码的扫描情况,并每隔预设时长采用循环构建任务心跳方式将所述扫描情况和所述进程状态上报到所述流水线引擎;所述扫描情况包括扫描进度和扫描日志;其中,当所述agent服务没有上报所述扫描情况时,通过所述流水线引擎停止运行流水线;获取所述流水线引擎发送的所述扫描情况和所述进程状态。
[0021]第三方面,本申请实施例提供一种代码检查服务器,所述代码检查服务器包括:至少一个存储器和至少一个处理器;所述至少一个存储器用于存储一个或多个程序;当所述一个或多个程序被所述至少一个处理器执行时,实现上述第一方面中任一种可能设计所涉及的方法。
[0022]第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有至少一个程序;当所述至少一个程序被处理器执行时,实现上述第一方面中任一种可能设计所涉及的方法。
[0023]本申请的有益效果如下:在本申请提供的技术方案中,获取预先配置的扫描信息;进一步的,启动流水线引擎,由流水线引擎基于扫描信息启动至少一个Docker扫描工具镜像;进一步的,通过至本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Docker的代码检查方法,其特征在于,包括:获取预先配置的扫描信息;启动流水线引擎,由所述流水线引擎基于所述扫描信息启动至少一个Docker扫描工具镜像;通过所述至少一个Docker扫描工具镜像对代码进行实时扫描,获得扫描结果,并将所述扫描结果保存到虚拟服务器的指定路径中;从所述指定路径中读取所述扫描结果,对所述扫描结果进行解析、验证处理,在所述扫描结果验证通过后,将所述扫描结果入库;对入库的扫描结果进行数据处理,获得告警结果,并展示所述告警结果。2.如权利要求1所述的方法,其特征在于,所述扫描信息包括:操作系统、扫描代码库、代码编写语言、Docker扫描工具、扫描规则、扫描规则集和扫描方法,所述扫描规则集对应多个所述Docker扫描工具。3.如权利要求1所述的方法,其特征在于,所述至少一个Docker扫描工具镜像由所述流水线引擎基于所述扫描信息采用多线程方式启动。4.如权利要求3所述的方法,其特征在于,所述至少一个Docker扫描工具镜像由所述流水线引擎基于所述扫描信息,调用Docker API,采用多线程方式启动。5.如权利要求1所述的方法,其特征在于,将所述扫描结果保存到虚拟服务器的指定路径中,包括:采用JSON格式、容器数据卷挂载方式将所述扫描结果保存至所述指定路径中。6.如权利要求1所述的方法,其特征在于,对所述扫描结果进行解析、验证处理,包括:通过调用parseCodeScanResult接口对所述扫描结果进行解析处理,获得解析后的扫描结果;采用JSON格式输出所述解析后的扫描结果;通过执行verifyCodeScanResult接口对所述解析后的扫描结果进行验证处理。7.如权利要求...

【专利技术属性】
技术研发人员:张坚欣钟冠邹方勇
申请(专利权)人:广州嘉为科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1