镜像构建方法与装置、电子设备、存储介质制造方法及图纸

技术编号:24089593 阅读:68 留言:0更新日期:2020-05-09 07:28
本公开涉及一种镜像构建方法与装置、电子设备、计算机可读存储介质,属于计算机技术领域。该方法包括:获取包含依赖信息的应用代码,依赖信息包含应用代码所依赖的目标依赖包及目标依赖包对应的版本约束条件;根据目标依赖包对应的版本约束条件,确定目标依赖包的相关依赖信息,相关依赖信息包括:目标依赖包所依赖的基础依赖包;根据相关依赖信息,安装基础依赖包及目标依赖包,得到依赖层镜像;安装应用代码,得到应用层镜像。本公开可以提高依赖包安装的可控性及可重入性。

Image construction methods and devices, electronic equipment, storage media

【技术实现步骤摘要】
镜像构建方法与装置、电子设备、存储介质
本公开涉及计算机
,尤其涉及一种镜像构建方法与装置、电子设备、计算机可读存储介质。
技术介绍
持续集成是在源代码变更后自动检测、拉取、构建和(在大多数情况下)进行单元测试的过程。持续集成的目标是快速确保开发人员新提交的变更是好的,并且适合在代码库中进一步使用。在通过持续集成构建镜像时,采用宽约束条件(例如,应用代码所依赖的依赖包的版本有多个)安装依赖包时,依赖包的更新升级导致对同一份源码执行持续集成最终生成的镜像中所安装的依赖包不同。对于应用代码Bug修复的场景,可能导致应用代码无法正常运行。因此,依赖包安装的可控性及可重入性较低。
技术实现思路
本公开的目的在于提供一种镜像构建方法与装置、电子设备、计算机可读存储介质,进而至少在一定程度上克服由于现有技术的限制和缺陷而导致的在构建镜像时依赖包安装的可控性及可重入性较低的问题。本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。根据本公开的第一方面,提供一种镜像构建方法,包括:获取包含依赖信息的应用代码,所述依赖信息包含所述应用代码所依赖的目标依赖包及所述目标依赖包对应的版本约束条件;根据所述目标依赖包对应的版本约束条件,确定所述目标依赖包的相关依赖信息,所述相关依赖信息包括:所述目标依赖包所依赖的基础依赖包;根据所述相关依赖信息,安装所述基础依赖包及所述目标依赖包,得到依赖层镜像;安装所述应用代码,得到应用层镜像。可选的,本公开实施例的镜像构建方法,还包括:获取所述应用代码的类型;在所述应用代码为第一类型时,或,在所述应用代码为第二类型,且所述应用代码为首次构建时,执行所述根据所述目标依赖包对应的版本约束条件,确定所述目标依赖包的相关依赖信息的步骤;在所述应用代码为第二类型,且所述应用代码为非首次构建时,获取已构建的依赖层镜像,执行所述安装所述应用代码,得到应用层镜像的步骤。可选的,本公开实施例的镜像构建方法,还包括:在所述目标依赖包或所述基础依赖包发生变化时,如果所述应用代码为第一类型,对所述依赖层镜像进行更新;如果所述应用代码为第二类型,不对所述依赖层镜像进行更新。可选的,所述根据所述目标依赖包对应的版本约束条件,确定所述目标依赖包的相关依赖信息,包括:根据所述目标依赖包对应的版本约束条件,确定所述目标依赖包的版本;对所述版本的目标依赖包进行递归检索,得到所述目标依赖包的相关依赖信息,所述相关依赖信息中的基础依赖包包括:所述版本的目标依赖包直接依赖的第一基础依赖包以及间接依赖的第二基础依赖包。可选的,所述相关依赖信息还包括:所述基础依赖包的可安装版本;所述根据所述相关依赖信息,安装所述基础依赖包及所述目标依赖包,包括:根据所述基础依赖包的可安装版本,对所述基础依赖包进行安装;根据所述目标依赖包的版本,对所述目标依赖包进行安装。可选的,本公开实施例的镜像构建方法,还包括:判断所述相关依赖信息中是否存在针对任一基础依赖包的版本冲突;在不存在版本冲突时,执行所述根据所述相关依赖信息,安装所述基础依赖包及所述目标依赖包的步骤;在存在版本冲突时,显示异常提示信息。可选的,本公开实施例的镜像构建方法,还包括:在所述应用代码更新时,重新安装所述应用代码,得到更新的应用层镜像。根据本公开的第二方面,提供一种镜像构建装置,包括:应用代码获取模块,用于获取包含依赖信息的应用代码,所述依赖信息包含所述应用代码所依赖的目标依赖包及所述目标依赖包对应的版本约束条件;相关依赖信息确定模块,用于根据所述目标依赖包对应的版本约束条件,确定所述目标依赖包的相关依赖信息,所述相关依赖信息包括:所述目标依赖包所依赖的基础依赖包;依赖层镜像确定模块,用于根据所述相关依赖信息,安装所述基础依赖包及所述目标依赖包,得到依赖层镜像;应用层镜像确定模块,用于安装所述应用代码,得到应用层镜像。可选的,本公开实施例的镜像构建装置,还包括:代码类型获取模块,用于获取所述应用代码的类型;所述相关依赖信息确定模块,具体用于在所述应用代码为第一类型时,或,在所述应用代码为第二类型,且所述应用代码为首次构建时,根据所述目标依赖包对应的版本约束条件,确定所述目标依赖包的相关依赖信息;依赖层镜像获取模块,用于在所述应用代码为第二类型,且所述应用代码为非首次构建时,获取已构建的依赖层镜像。可选的,本公开实施例的镜像构建装置,还包括:依赖层镜像第一处理模块,用于在所述目标依赖包或所述基础依赖包发生变化时,如果所述应用代码为第一类型,对所述依赖层镜像进行更新;依赖层镜像第二处理模块,用于在所述目标依赖包或所述基础依赖包发生变化时,如果所述应用代码为第二类型,不对所述依赖层镜像进行更新。可选的,所述相关依赖信息确定模块,包括:版本确定单元,用于根据所述目标依赖包对应的版本约束条件,确定所述目标依赖包的版本;递归检索单元,用于对所述版本的目标依赖包进行递归检索,得到所述目标依赖包的相关依赖信息,所述相关依赖信息中的基础依赖包包括:所述版本的目标依赖包直接依赖的第一基础依赖包以及间接依赖的第二基础依赖包。可选的,所述相关依赖信息还包括:所述基础依赖包的可安装版本;所述依赖层镜像确定模块,具体用于根据所述基础依赖包的可安装版本,对所述基础依赖包进行安装;根据所述目标依赖包的版本,对所述目标依赖包进行安装。可选的,本公开实施例的镜像构建装置,还包括:判断模块,用于判断所述相关依赖信息中是否存在针对任一基础依赖包的版本冲突;所述依赖层镜像确定模块,具体用于在不存在版本冲突时,根据所述相关依赖信息,安装所述基础依赖包及所述目标依赖包;异常提示模块,用于在存在版本冲突时,显示异常提示信息。可选的,本公开实施例的镜像构建装置,还包括:应用层镜像更新模块,用于在所述应用代码更新时,重新安装所述应用代码,得到更新的应用层镜像。根据本公开的第三方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。根据本公开的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。本公开的示例性实施例具有以下有益效果:本公开的示例性实施例提供的镜像构建方法及装置中,在持续集成过程中通过将依赖包的安装从应用代码的安装中独立出来,可以单独构建依赖层镜像和应用层镜像。这样,可以根据实际应用场景对依赖层镜像和应用层镜像分别进行更新,从而可以提升依赖包安装的可预知性、可控性,避免应用代码无法正常运行的问题。应当理解的是,以上的一般描述和本文档来自技高网...

【技术保护点】
1.一种镜像构建方法,其特征在于,所述方法包括:/n获取包含依赖信息的应用代码,所述依赖信息包含所述应用代码所依赖的目标依赖包及所述目标依赖包对应的版本约束条件;/n根据所述目标依赖包对应的版本约束条件,确定所述目标依赖包的相关依赖信息,所述相关依赖信息包括:所述目标依赖包所依赖的基础依赖包;/n根据所述相关依赖信息,安装所述基础依赖包及所述目标依赖包,得到依赖层镜像;/n安装所述应用代码,得到应用层镜像。/n

【技术特征摘要】
1.一种镜像构建方法,其特征在于,所述方法包括:
获取包含依赖信息的应用代码,所述依赖信息包含所述应用代码所依赖的目标依赖包及所述目标依赖包对应的版本约束条件;
根据所述目标依赖包对应的版本约束条件,确定所述目标依赖包的相关依赖信息,所述相关依赖信息包括:所述目标依赖包所依赖的基础依赖包;
根据所述相关依赖信息,安装所述基础依赖包及所述目标依赖包,得到依赖层镜像;
安装所述应用代码,得到应用层镜像。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述应用代码的类型;
在所述应用代码为第一类型时,或,在所述应用代码为第二类型,且所述应用代码为首次构建时,执行所述根据所述目标依赖包对应的版本约束条件,确定所述目标依赖包的相关依赖信息的步骤;
在所述应用代码为第二类型,且所述应用代码为非首次构建时,获取已构建的依赖层镜像,执行所述安装所述应用代码,得到应用层镜像的步骤。


3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标依赖包或所述基础依赖包发生变化时,如果所述应用代码为第一类型,对所述依赖层镜像进行更新;如果所述应用代码为第二类型,不对所述依赖层镜像进行更新。


4.根据权利要求1所述的方法,其特征在于,所述根据所述目标依赖包对应的版本约束条件,确定所述目标依赖包的相关依赖信息,包括:
根据所述目标依赖包对应的版本约束条件,确定所述目标依赖包的版本;
对所述版本的目标依赖包进行递归检索,得到所述目标依赖包的相关依赖信息,所述相关依赖信息中的基础依赖包包括:所述版本的目标依赖包直接依赖的第一基础依赖包以及间接依赖的第二基础依赖包。


5.根据权利要求4所述的方法,其特征在于,所述相关依赖信息还包括...

【专利技术属性】
技术研发人员:黄源
申请(专利权)人:南京医康科技有限公司南京懿医云大数据科技有限公司
类型:发明
国别省市:江苏;32

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

1