【技术实现步骤摘要】
一种Dockerfile基础镜像版本信息自动补全方法和装置
本专利技术涉及一种软件版本信息补全的方法,尤其涉及一种面向Docker容器镜像的版本信息补全方法和装置,属于计算机软件
技术介绍
Docker是一个开源的应用容器引擎,目前在容器虚拟化
,Docker已经得到了广泛的应用。Docker容器本质上是一个构建在LinuxContainer技术上的,基于进程容器的轻量级虚拟机解决方案。Dockerfile是容器镜像内容的一个静态描述文件,开发者可以通过Dockerfile来定义、构建Docker镜像。Dockerfile内容由一系列的Dockerfile指令组成,这些指令基于特定的领域描述语言来声明如何打包应用、构建镜像和运行容器实例。Dockerfile使用了FROM、MAINTAINER、ENV、RUN、CMD等指令。其中,FROM指令是标识本镜像基于哪个基础镜像构建的;RUN指令里执行shell命令并创建新的镜像层,常用于安装软件包;ENV指令设置环境变量;CMD指令设置容器启动后默认执行的命令及其参数等等。使用Dockerfile来构建D ...
【技术保护点】
1.一种Dockerfile基础镜像版本信息自动补全方法,其特征在于,包括以下步骤:1)建立满足基础镜像版本号规范的Dockerfile集合,对所述Dockerfile集合中的每个Dockerfile提取其基础镜像和版本号信息;2)给定基础镜像版本号缺失的待修复的Dockerfile,获取其基础镜像的名称,根据该基础镜像的名称,从所述Dockerfile集合中获取依赖该基础镜像的Dockerfile列表;3)对所述Dockerfile列表中的每一个Dockerfile,计算其与所述待修复的Dockerfile之间的相似度;4)选取所述Dockerfile列表中与所述待修复的 ...
【技术特征摘要】
1.一种Dockerfile基础镜像版本信息自动补全方法,其特征在于,包括以下步骤:1)建立满足基础镜像版本号规范的Dockerfile集合,对所述Dockerfile集合中的每个Dockerfile提取其基础镜像和版本号信息;2)给定基础镜像版本号缺失的待修复的Dockerfile,获取其基础镜像的名称,根据该基础镜像的名称,从所述Dockerfile集合中获取依赖该基础镜像的Dockerfile列表;3)对所述Dockerfile列表中的每一个Dockerfile,计算其与所述待修复的Dockerfile之间的相似度;4)选取所述Dockerfile列表中与所述待修复的Dockerfile最相似的Docker镜像的基础镜像信息的版本号,作为所述待修复的Dockerfile的基础镜像版本号来进行补全。2.根据权利要求1所述的方法,其特征在于,所述Dockerfile集合中的每一个Dockerfile表示为dfi,dfi={ni,di,vi},其中ni表示当前Dockerfile的名称,di表示当前dockerfile中基础镜像的名称,vi表示基础镜像的版本号,1≤i≤n,n表示所述Dockerfile集合中Dockerfile的数量。3.根据权利要求1或2所述的方法,其特征在于,步骤3)包括:3.1)计算dferror和dfj的第三方包相似度,其中dferror表示存在基础镜像版本号缺失问题的Dockerfile,dfj表示所述Dockerfile列表中的第j个Dockerfile;3.2)提取出dferror和dfj中ENV命令所设置的环境变量,计算dferror和dfj的环境变量相似度;3.3)计算dferror和dfj的服务启动相似度,即Docker容器镜像启动服务的相似度;3.4)对3.1)~3.3)的三种相似度计算的结果进行线性加权,得到最终的dferror和dfj的相似度。4.根据权利要求3所述的方法,其特征在于,步骤3.1)包括:a)分别提取出dferror和dfj中RUN命令执行的shell命令,分析shell命令的语法树,抽取出命令中的软件包集合信息,分别表示为frun,error和frun,j;b)使用Jaccard相关系数来计算第三方包相似度,如下式所示:其中Simins(dferror,dfj)表示第三方包相似度。5.根据权利要求3所述的方法,其特征在于,步骤3.2)包括:a)提取出dferror和dfj中ENV命令所设置的环境变量,做字符串处理后表示为fenv,error和fenv,j;b)采用Jaccard相关系数计算环境变量相似度,如下式所示:其中Simenv(dferror,dfj)表示环境变量相似度。6.根据权利要求3所...
【专利技术属性】
技术研发人员:陈伟,朱家鑫,吴国全,周家宏,魏峻,
申请(专利权)人:中国科学院软件研究所,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。