一种镜像构建方法、装置及服务器制造方法及图纸

技术编号:21115402 阅读:19 留言:0更新日期:2019-05-16 08:53
本申请涉及通信领域,公开了一种镜像构建方法、装置及服务器,以解决现有技术中的镜像构建方案会导致镜像错误覆盖的技术问题。该方法包括:基于构件事件结构表,对第一层的至少一个第一镜像构件事件进行处理;确认所述至少一个第一镜像构件事件的处理完成后,触发对第二层的至少一个第二镜像构建事件的处理;其中,在所述构建事件结构表中,所述第二层的镜像构建事件构建依赖于所述第一层的镜像构建事件构建。能够防止因为这至少一个构建事件中某个构建事件的构建失败,导致的镜像的错误覆盖,达到了提高镜像构建的准确率的技术效果。

【技术实现步骤摘要】
一种镜像构建方法、装置及服务器
本申请涉及互联网领域,尤其涉及一种镜像构建方法、装置及服务器。
技术介绍
镜像构建是一种将应用和应用依赖的环境一同打包交付的一种方式。镜像构建的输入是一个描述文件和这个文件依赖的构建上下文目录。镜像构建的过程是,将构建的输入下载到一个执行环境(通常是一台物理机,虚拟机,或者容器),然后根据描述文件中的指令去执行构建过程,包括:下载基础镜像、下载需要安装的软件包、执行安装等等。在镜像构建过程中,各个构建事件的构建过程可能是相互关联的,以Docker镜像构建为例,如图1所示,该Docker镜像包括构建事件A、B、C、D、E、F、G,当构建事件A的镜像构建成功后,可以利用webhook钩子通知构建事件B、C、D的镜像构建,当构建事件B、C、D构建完成后,再触发构建事件E、F、G的构建。现有技术中的方案,至少存在以下问题:当某一层的构建事件构建失败之后,依然会触发下一层的构建事件的构建,从而导致会存在着镜像的错误覆盖的技术问题。
技术实现思路
本申请提供一种镜像构建方法、装置及服务器,以解决现有技术中的镜像构建方案会导致镜像错误覆盖的技术问题。第一方面,本申请实施例提供一种镜像构建方法,包括:基于构件事件结构表,对第一层的至少一个第一镜像构件事件进行处理;确认所述至少一个第一镜像构件事件的处理完成后,触发对第二层的至少一个第二镜像构建事件的处理;其中,在所述构建事件结构表中,所述第二层的镜像构建事件构建依赖于所述第一层的镜像构建事件构建。第二方面,本申请实施例一种镜像构建装置,包括:第一处理模块,用于基于构件事件结构表,对第一层的至少一个第一镜像构件事件进行处理;判断模块,用于确认所述至少一个第一镜像构件事件的处理是否完成;第二处理模块,用于所述判断模块确认所述至少一个第一镜像构件事件的处理完成后,触发对第二层的至少一个第二镜像构建事件的处理;其中,在所述构建事件结构表中,所述第二层的镜像构建事件构建依赖于所述第一层的镜像构建事件构建。第三方面,本申请实施例提供一种服务器,包括:处理器;存储器,用于存储一种镜像构建方法的程序,所述程序在被所述处理器读取执行时,执行如下操作:基于构件事件结构表,对第一层的至少一个第一镜像构件事件进行处理;确认所述至少一个第一镜像构件事件的处理完成后,触发对第二层的至少一个第二镜像构建事件的处理;其中,在所述构建事件结构表中,所述第二层的镜像构建事件构建依赖于所述第一层的镜像构建事件构建。第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如下操作:基于构件事件结构表,对第一层的至少一个第一镜像构件事件进行处理;确认所述至少一个第一镜像构件事件的处理完成后,触发对第二层的至少一个第二镜像构建事件的处理;其中,在所述构建事件结构表中,所述第二层的镜像构建事件构建依赖于所述第一层的镜像构建事件构建。本申请有益效果如下:由于在本申请实施例中,在构建包含至少两层构建事件的镜像时,在某一构建事件(例如:第一镜像构建事件)完成之后,并不直接触发第一镜像构建事件的下一层的构建事件的构建,而是先确定出所述至少两层构建事件中与所述第一镜像构建事件位于同一层的至少一个构建事件,并在确定出这至少一个构建事件构建完事件成之后,才触发下一层的构建事件的构建,从而能够防止因为这至少一个构建事件中某个构建事件的构建失败,导致的镜像的错误覆盖,达到了提高镜像构建的准确率的技术效果。附图说明图1为现有技术中的镜像的各个构建对象的示意图;图2本申请实施例中镜像的各个构建对象的树形表和链形表的示意图;图3为本申请第一方面的镜像构建方法的流程图;图4为本申请第二方面的镜像构建装置的结构图;图5为本申请第三方面的服务器的结构图。具体实施方式本申请提供一种镜像构建方法、装置及服务器,以解决现有技术中的镜像构建方案会导致镜像错误覆盖的技术问题。本申请实施例中的技术方案为解决上述的技术问题,总体思路如下:在构建包含至少两层构建事件的镜像时,在某一构建事件(例如:第一镜像构建事件)完成之后,并不直接触发第一镜像构建事件的下一层的构建事件的构建,而是先确定出所述至少两层构建事件中与所述第一镜像构建事件位于同一层的至少一个构建事件,并在确定出这至少一个构建事件构建完事件成之后,才触发下一层的构建事件的构建,从而能够防止因为这至少一个构建事件中某个构建事件的构建失败,导致的镜像的错误覆盖,达到了提高镜像构建的准确率的技术效果。为了更好的理解上述技术方案,下面通过附图以及具体实施例对本申请技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。第一方面,本申请实施例提供一种镜像构建方法,所述镜像包含至少两层构建事件,该构建的镜像例如为:Docker镜像、rkt镜像等等。如图2所示,为一镜像所包含的七个构建事件A、B、C、D、E、F、G的层级关系示意图,其中包含构建事件树形表,表示构建事件之间的上下游关系,也包含构建事件脸型表,同层级的构建事件之间通过构建事件链形表相连,其中构建事件A处于第一层级,构建事件B、C、D处于第二层级,构建事件E、F、G处于第三层级,构建事件B、C、D之间通过构建事件链形表相连,构建事件E、F、G之间听过构建事件链形表相连等等。当然,镜像还可以包括其他数量的构建事件,本申请实施例不作限制。请参考图3,所述镜像构建方法包括:步骤S301:基于构件事件结构表,对第一层的至少一个第一镜像构件事件进行处理;步骤S302:确认至少一个第一镜像构件事件的处理完成后,触发对第二层的至少一个第二镜像构建事件的处理;其中,在所述构建事件结构表中,所述第二层的镜像构建事件构建依赖于所述第一层的镜像构建事件构建。第一镜像构建事件可以为镜像任意构建事件,以图2所示为例,假设第一镜像构建事件为构建事件B,在构建事件B结束之后,可以通过图2所示的构建事件链形表确定出与构建事件B位于同一层级的至少一个构建事件,例如:构建事件C、构建事件D,其中,可以确定出与第一镜像构建事件位于同一层级的所有构建事件作为后续所采用的至少一个构建事件,从而可以防止所有构建事件被错误覆盖;也可以确定出与第一镜像构建事件位于同一层级的部分构建事件作为后续所采用的至少一个构建事件,则可以防止这部分构建事件被错误覆盖。作为一种可选的实施例,在确定第一镜像构建事件构建完成之后,所述方法还包括:将所述第一镜像构建事件的构建完成状态告知构建控制中心,以通过对所述构建控制中心对所述第一镜像构建事件的构建状态进行管理。举例来说,构建控制中心可以存储各个构建事件的构建状态,其构建状态例如包括:尚未构建、构建中、构建完成等等。第一镜像构建事件(例如:构建事件B)在构建完成之后,可以向构建控制中心发送构建完成状态,构建控制中心在确定第一镜像构建事件处于构建完成状态之后,则可以将第一镜像构建事件的构建状态设置为构建完成,从而后续其他构建事件(例如:构建事件C、构建事件D等等)可以向构建控制中心查询第一镜像构建事件的构建状态,构建控制中心除了可以包含各个构建事件的构建状本文档来自技高网...

【技术保护点】
1.一种镜像构建方法,其特征在于,包括:基于构件事件结构表,对第一层的至少一个第一镜像构件事件进行处理;确认所述至少一个第一镜像构件事件的处理完成后,触发对第二层的至少一个第二镜像构建事件的处理;其中,在所述构建事件结构表中,所述第二层的镜像构建事件构建依赖于所述第一层的镜像构建事件构建。

【技术特征摘要】
1.一种镜像构建方法,其特征在于,包括:基于构件事件结构表,对第一层的至少一个第一镜像构件事件进行处理;确认所述至少一个第一镜像构件事件的处理完成后,触发对第二层的至少一个第二镜像构建事件的处理;其中,在所述构建事件结构表中,所述第二层的镜像构建事件构建依赖于所述第一层的镜像构建事件构建。2.如权利要求1所述的方法,其特征在于,所述确认所述至少一个第一镜像构件事件的处理完成,包括:通过构建控制中心查询所述第一镜像构建事件的处理状态,所述构建控制中心用于管理所述镜像的各个镜像构建事件的处理状态;通过每个第一镜像构建事件的处理状态判断对应第一镜像构建事件是否处理完成。3.如权利要求1所述的方法,其特征在于,所述触发对第二层的至少一个第二镜像构建事件的处理第一镜像构建事件,包括:判断所述第二层的第二镜像构建事件的代码是否出现变更;如果所述代码出现变更,则触发对所述第二镜像构建事件的处理。4.如权利要求1-3任一所述的方法,其特征在于,在确认第一层的各个第一镜像构件事件均处理完成第一镜像构建事件之后,所述方法还包括:将所述第一镜像构建事件的处理完成状态告知构建控制中心,以通过对所述构建控制中心对所述第一镜像构建事件的构建状态进行管理。5.如权利要求1-3任一所述的方法,其特征在于,在所述确认第一层的各个第一镜像构件事件均处理完成之前,所述方法还包括:如果存在所述第一镜像构建事件尚未处理完成,暂停对所述第一镜像构建事件第二层的第二镜像构建事件的处理。6.如权利要求5所述的方法,其特征在于,在所述暂停对所述第二层的第二镜像构建事件的处理之后第一镜像构建事件,所述方法还包括:确定出尚未处理完成的第一镜像构建事件的处理状态;如果所述尚未构建完成的第一镜像构建事件处于尚未处理的状态,则对该尚未处理完成的第一镜像构建事件进行处理;如果所述尚未处理完成的第一镜像构建事件处于正在处理的状态,则等待预设时间间隔;若所述预设时间间隔之后,所述尚未处理完成的第一镜像构建事件尚未处理成功,则停止所述镜像的处理。7.一种镜像构建装置,其特征在于,包括:第一处理模块,用于基于构件事件结构表,对第一层的至少一个第一镜像构件事件进行处理;判断模块,用于确认所述至少一个第一镜像构件事件的处理是否完成;第二处理模块,用于所述判断模块确认所述至少一个第一镜像构件事件的处理完成后,触发对第二层的至少一个第二镜像构建事件的处理;其中,在所述...

【专利技术属性】
技术研发人员:罗晶
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1