基于docker的持续集成方法、装置及存储介质制造方法及图纸

技术编号:32929827 阅读:13 留言:0更新日期:2022-04-07 12:21
本发明专利技术提供一种基于docker的持续集成方法,包括:获取持续集中场景中待封装的节点,基于所述持续集中场景中的节点构建基础插件镜像;读取目标项目的基础配置信息,读取基础配置信息中所有维度的属性信息,基于所述属性信息进行持续集成;读取基于drone.yml配置的节点信息;以docker in docker的形式根据基础配置信息、节点信息构建相应节点镜像,运行所镜像的节点以实现节点相应的功能。本发明专利技术提供的技术方案,通过集成插件处理的方式,解决了当前droneci集成中配置繁多,效率低的问题,并且,本发明专利技术中每个项目中的drone.yml只需要配置使用相应的插件即可,研发人员不需要再关注持续集成的过程中每一步需要如何配置,提高研发人员的专注度,提高了项目接入使用持续集成的效率。的效率。的效率。

【技术实现步骤摘要】
基于docker的持续集成方法、装置及存储介质


[0001]本专利技术涉及持续集成
,尤其涉及一种基于docker的持续集成方法、装置及存储介质。

技术介绍

[0002]如今软件开发普遍需要长期迭代,多人合作。随着时间的推进,代码复杂度,部署难度也会不断的提高,团队多个开发成员之间如何更好的协同配合,保证软件开发,部署,交付的质量成了大多数软件研发中不可回避的问题。加上近年来敏捷开发的理念越来越流行,如何响应快速变化的需求,稳定迭代出新功能也愈发重要。
[0003]持续集成正是针对于稳定迭代出新的最佳解,如图1所示,持续集成包括持续整合(CI)和持续部署(CD),关于持续整合(CI)和持续部署(CD)有如下解释:
[0004]1、持续整合(CI)的目的是针对软件系统每个变动,能持续性的进行验证并整合。所以在CI的阶段通常会执行整合代码、构建、测试工作;
[0005]2、持续部署即在在持续交付的阶段,代码通过质量的验证,最后会产生一个可以部署的成品,可能是一个执行文件或是docker image。这个成品将自动部署到正式环境。
[0006]持续集成确实很大程度上方便了开发人员部署项目,但其繁琐的配置,以及较为复杂的搭建是持续存在的问题。
[0007]以目前较为流行的drone CI持续集成平台为例。其广泛支持自动化软件构件和测试,通过配置文件,插件和大量的定制环境变量能很好的满足开发团队一般的持续集成需求,被越来越多的研发团队采用。
[0008]基于drone的持续集成方式由于每个项目中都需要一份drone.yml文件来描述整个发布流程,因此需要团队成员了解整个项目的发布过程,这需要相当一部分的学习成本,包括了解drone的配置写法,语义内容,了解项目部署方式,甚至需要自行开发drone插件来满足项目的发布。大大降低了开发人员完成项目接入可持续集成的效率。现有方案虽然解决了个人发布中,个人电脑环境不稳定,发布速度慢,容易出错等问题,但也要求使用者要能够掌握drone配置,插件相关技术、并且了解自身项目的完整发布流程才能书写出drone的配置和插件,这大大降低的研发的业务部署效率。

技术实现思路

[0009]本专利技术实施例提供一种基于docker的持续集成方法、装置及存储介质,通过插件的行驶解决当前droneci集成中配置繁多、效率低的问题,有效的提高了持续集成的效率。
[0010]本专利技术实施例的第一方面,提供一种基于docker的持续集成方法,包括:
[0011]获取持续集中场景中待封装的节点,基于所述持续集中场景中的节点构建基础插件镜像;
[0012]读取目标项目的基础配置信息,读取所述基础配置信息中所有维度的属性信息,基于所述属性信息进行持续集成;
[0013]读取基于drone.yml配置的节点信息;
[0014]以docker in docker的形式根据基础配置信息、节点信息构建相应节点镜像,运行所镜像的节点以实现节点相应的功能。
[0015]可选地,在第一方面的一种可能实现方式中,获取持续集中场景中待封装的节点,基于所述持续集中场景中的节点构建基础插件镜像包括:
[0016]接收选定数据,基于所述选定数据确定持续集中场景中待封装的节点;
[0017]其中,每个节点在运行时具有相对应的功能。
[0018]可选地,在第一方面的一种可能实现方式中,所述基础插件镜像包括git、http、nodejs、golang、docker in docker以及k8s中的任意一种或多种。
[0019]可选地,在第一方面的一种可能实现方式中,读取目标项目的基础配置信息,读取所述基础配置信息中所有维度的属性信息,基于所述属性信息进行持续集成包括:
[0020]所述属性信息包括日志位置、语言类型、发布方式、cpu、内存需求以及部署节点中的任意一种或多种;
[0021]根据所述属性信息生成对应的项目模板,所述项目模板包括持续集成时的必要数据。
[0022]可选地,在第一方面的一种可能实现方式中,读取基于drone.yml配置的节点信息包括:
[0023]其中,基于drone.yml配置的节点信息为项目之外配置给持续集成的信息,用于描述持续集成需要完成的行为;
[0024]其中节点信息为all、build以及notice中的任意一个或多个;
[0025]All为已经完成的持续集成;
[0026]build为只编译打包不发布的持续集成;
[0027]notice为发布消息的持续集成。
[0028]可选地,在第一方面的一种可能实现方式中,以docker in docker的形式根据基础配置信息、节点信息构建相应节点镜像,运行所镜像的节点以实现节点相应的功能包括:
[0029]基于所述基础配置信息和/或节点信息确定为需要对目标项目进行打包处理;
[0030]读取所述目标项目的dockerfile模板、基础配置信息和/或节点信息生成dockerfile;
[0031]响应于接收到的命令进行打包处理。
[0032]可选地,在第一方面的一种可能实现方式中,其中,所述dockerfile模板为预先设置的。
[0033]可选地,在第一方面的一种可能实现方式中,还包括:
[0034]获取持续集中场景中待封装的节点,基于所述持续集中场景中的节点构建基础插件镜像包括:
[0035]基于接收的插件配置数据对在多个节点中选择相应的待封装的节点。
[0036]本专利技术实施例的第二方面,提供一种基于docker的持续集成装置,包括:
[0037]插件镜像模块,用于获取持续集中场景中待封装的节点,基于所述持续集中场景中的节点构建基础插件镜像;
[0038]基础配置信息读取模块,用于读取目标项目的基础配置信息,读取所述基础配置
信息中所有维度的属性信息,基于所述属性信息进行持续集成;
[0039]节点信息读取模块,用于读取基于drone.yml配置的节点信息;
[0040]运行模块,用于以docker in docker的形式根据基础配置信息、节点信息构建相应节点镜像,运行所镜像的节点以实现节点相应的功能。
[0041]本专利技术实施例的第三方面,提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现本专利技术第一方面及第一方面各种可能设计的所述方法。
[0042]本专利技术提供的一种基于docker的持续集成方法、装置及存储介质。通过集成插件处理的方式,解决了当前droneci集成中配置繁多,效率低的问题,并且,本专利技术中每个项目中的drone.yml只需要配置使用相应的插件即可,研发人员不需要再关注持续集成的过程中每一步需要如何配置,提高研发人员的专注度,提高了项目接入使用持续集成的效率。
[0043]在现有技术中,每个项目单独配置每个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于docker的持续集成方法,其特征在于,包括:获取持续集中场景中待封装的节点,基于所述持续集中场景中的节点构建基础插件镜像;读取目标项目的基础配置信息,读取所述基础配置信息中所有维度的属性信息,基于所述属性信息进行持续集成;读取基于drone.yml配置的节点信息;以docker in docker的形式根据基础配置信息、节点信息构建相应节点镜像,运行所镜像的节点以实现节点相应的功能。2.根据权利要求1所述的基于docker的持续集成方法,其特征在于,获取持续集中场景中待封装的节点,基于所述持续集中场景中的节点构建基础插件镜像包括:接收选定数据,基于所述选定数据确定持续集中场景中待封装的节点;其中,每个节点在运行时具有相对应的功能。3.根据权利要求2所述的基于docker的持续集成方法,其特征在于,所述基础插件镜像包括git、http、nodejs、golang、docker in docker以及k8s中的任意一种或多种。4.根据权利要求1所述的基于docker的持续集成方法,其特征在于,读取目标项目的基础配置信息,读取所述基础配置信息中所有维度的属性信息,基于所述属性信息进行持续集成包括:所述属性信息包括日志位置、语言类型、发布方式、cpu、内存需求以及部署节点中的任意一种或多种;根据所述属性信息生成对应的项目模板,所述项目模板包括持续集成时的必要数据。5.根据权利要求1所述的基于docker的持续集成方法,其特征在于,读取基于drone.yml配置的节点信息包括:其中,基于drone.yml配置的节点信息为项目之外配置给持续集成的信息,用于描述持续集成需要完成的行为;其中节点信息为all、build以及notice中的任意一个或多个...

【专利技术属性】
技术研发人员:王康秦京可王星黄志华
申请(专利权)人:深圳市华宇讯科技有限公司
类型:发明
国别省市:

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

1