一种基于配置代码表征的容器基础镜像推荐方法及系统技术方案

技术编号:29788659 阅读:12 留言:0更新日期:2021-08-24 18:07
本发明专利技术涉及一种基于配置代码表征的容器基础镜像推荐方法及系统,该方法包括:对容器镜像配置数据集中各容器镜像配置文件中数据进行解析,获得各容器镜像配置文件对应的功能性代码片段和基础镜像;将各所述功能性代码片段表征为抽象语法树结构;获得所述抽象语法树结构从根节点到各叶子节点的多条路径,各条路径包括从根节点到对应叶子节点之间的结构序列和对应的叶子节点;以各所述功能性代码片段对应的多个结构序列和对应的叶子节点为输入,以各所述功能性代码片段对应的基础镜像为输出训练神经网络模型;根据训练好的神经网络模型,获得所述待推荐的功能性代码片段对应的基础镜像。本发明专利技术提高了容器基础镜像获取的效率和准确性。

【技术实现步骤摘要】
一种基于配置代码表征的容器基础镜像推荐方法及系统
本专利技术涉及容器基础镜像领域,特别是涉及一种基于配置代码表征的容器基础镜像推荐方法及系统。
技术介绍
近年来,得益于容器技术的快速部署的特性,Docker容器技术已经引起了业内的广泛关注。但是基于Docker容器的软件开发过程,需要编写Dockerfile等配置文件信息。为了完成Dockerfile的配置,开发者首先需要指定该Dockerfile所依赖的基础镜像,这往往依赖于开发者的个人经验。更重要的是,选择合适的基础镜像不仅仅有利于减小镜像的大小,更有利于提高镜像的构建成功率。然而,在类似DockerHub等镜像托管社区,容器搜索技术主要依赖于开发者的个人经验。
技术实现思路
本专利技术的目的是提供一种基于配置代码表征的容器基础镜像推荐方法及系统,提高了容器基础镜像获取的效率和准确性。为实现上述目的,本专利技术提供了如下方案:一种基于配置代码表征的容器基础镜像推荐方法,所述方法包括:获得容器镜像配置数据集;所述容器镜像配置数据集包括多个容器镜像配置文件;对所述容器镜像配置数据集中各容器镜像配置文件中数据进行解析,获得各容器镜像配置文件对应的功能性代码片段和基础镜像;将各所述功能性代码片段表征为抽象语法树结构;获得所述抽象语法树结构从根节点到各叶子节点的多条路径,各条路径包括从根节点到对应叶子节点之间的结构序列和对应的叶子节点;以各所述功能性代码片段对应的多个结构序列和对应的叶子节点为输入,以各所述功能性代码片段对应的基础镜像为输出训练神经网络模型,获得容器基础镜像推荐模型;获得待推荐的功能性代码片段的多个结构序列和对应的叶子节点;将所述待推荐的功能性代码片段的多个结构序列和对应的叶子节点输入所述容器基础镜像推荐模型,获得所述待推荐的功能性代码片段对应的基础镜像。可选地,所述获得容器镜像配置数据集,具体包括:获得开源项目集;从所述开源项目集中筛选出包括镜像配置文件的项目,获得容器镜像数据库;剔除所述容器镜像数据库中重复的容器镜像配置文件,获得由多个不同内容的容器镜像配置文件构成的容器镜像配置数据集。可选地,所述获得开源项目集,具体包括:从开源社区代码托管平台中,筛选star指标大于第一设定值且Issue指标大于第二设定值的开源项目,获得开源项目集。可选地,所述剔除所述容器镜像数据库中重复的容器镜像配置文件,获得由多个不同内容的容器镜像配置文件构成的容器镜像配置数据集,具体包括:获得容器镜像数据库中各所述容器镜像文件的哈希值;根据各所述容器镜像文件的哈希值剔除所述容器镜像数据库中重复的容器镜像配置文件,获得由多个不同内容的容器镜像配置文件构成的容器镜像配置数据集。可选地,所述神经网络模型为基于注意力机制的神经网络模型。本专利技术还公开了一种基于配置代码表征的容器基础镜像推荐系统,所述系统包括:数据集获取模块,用于获得容器镜像配置数据集;所述容器镜像配置数据集包括多个容器镜像配置文件;数据解析模块,用于对所述容器镜像配置数据集中各容器镜像配置文件中数据进行解析,获得各容器镜像配置文件对应的功能性代码片段和基础镜像;代码片段表征模块,用于将各所述功能性代码片段表征为抽象语法树结构;多路径获取模块,用于获得所述抽象语法树结构从根节点到各叶子节点的多条路径,各条路径包括从根节点到对应叶子节点之间的结构序列和对应的叶子节点;容器基础镜像推荐模型训练模块,用于以各所述功能性代码片段对应的多个结构序列和对应的叶子节点为输入,以各所述功能性代码片段对应的基础镜像为输出训练神经网络模型,获得容器基础镜像推荐模型;输入特征获取模块,用于获得待推荐的功能性代码片段的多个结构序列和对应的叶子节点;容器基础镜像推荐模型应用模块,用于将所述待推荐的功能性代码片段的多个结构序列和对应的叶子节点输入所述容器基础镜像推荐模型,获得所述待推荐的功能性代码片段对应的基础镜像。可选地,所述数据集获取模块,具体包括:开源项目集获取单元,用于获得开源项目集;容器镜像数据库获取单元,用于从所述开源项目集中筛选出包括镜像配置文件的项目,获得容器镜像数据库;容器镜像配置数据集获取单元,用于剔除所述容器镜像数据库中重复的容器镜像配置文件,获得由多个不同内容的容器镜像配置文件构成的容器镜像配置数据集。可选地,所述开源项目集获取单元,具体包括:开源项目集获取子单元,用于从开源社区代码托管平台中,筛选star指标大于第一设定值且Issue指标大于第二设定值的开源项目,获得开源项目集。可选地,所述容器镜像配置数据集获取单元,具体包括:哈希值获取子单元,用于获得容器镜像数据库中各所述容器镜像文件的哈希值;重复剔除子单元,用于根据各所述容器镜像文件的哈希值剔除所述容器镜像数据库中重复的容器镜像配置文件,获得由多个不同内容的容器镜像配置文件构成的容器镜像配置数据集。可选地,所述神经网络模型为基于注意力机制的神经网络模型。根据本专利技术提供的具体实施例,本专利技术公开了以下技术效果:本专利技术一种基于配置代码表征的容器基础镜像推荐方法及系统,将功能性代码片段表征为抽象语法树结构,从抽象语法树结构中获取配置信息的语义和结构特性,以各所述功能性代码片段对应的多个结构序列和对应的叶子节点为输入,以各所述功能性代码片段对应的基础镜像为输出训练神经网络模型,获得容器基础镜像推荐模型,根据所述容器基础镜像推荐模型得到所述待推荐的功能性代码片段对应的基础镜像,与传统的根据个人经验选择基础镜像相比,提高了容器基础镜像获取的效率和准确性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术一种基于配置代码表征的容器基础镜像推荐方法流程示意图;图2为本专利技术一种基于配置代码表征的容器基础镜像推荐系统结构示意图;图3为本专利技术一种基于配置代码表征的容器基础镜像推荐方法详细流程示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术的目的是提供一种基于配置代码表征的容器基础镜像推荐方法及系统,提高了容器基础镜像获取的效率和准确性。为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。图1为本专利技术一种基于配置代码表征的容本文档来自技高网...

【技术保护点】
1.一种基于配置代码表征的容器基础镜像推荐方法,其特征在于,所述方法包括:/n获得容器镜像配置数据集;所述容器镜像配置数据集包括多个容器镜像配置文件;/n对所述容器镜像配置数据集中各容器镜像配置文件中数据进行解析,获得各容器镜像配置文件对应的功能性代码片段和基础镜像;/n将各所述功能性代码片段表征为抽象语法树结构;/n获得所述抽象语法树结构从根节点到各叶子节点的多条路径,各条路径包括从根节点到对应叶子节点之间的结构序列和对应的叶子节点;/n以各所述功能性代码片段对应的多个结构序列和对应的叶子节点为输入,以各所述功能性代码片段对应的基础镜像为输出训练神经网络模型,获得容器基础镜像推荐模型;/n获得待推荐的功能性代码片段的多个结构序列和对应的叶子节点;/n将所述待推荐的功能性代码片段的多个结构序列和对应的叶子节点输入所述容器基础镜像推荐模型,获得所述待推荐的功能性代码片段对应的基础镜像。/n

【技术特征摘要】
1.一种基于配置代码表征的容器基础镜像推荐方法,其特征在于,所述方法包括:
获得容器镜像配置数据集;所述容器镜像配置数据集包括多个容器镜像配置文件;
对所述容器镜像配置数据集中各容器镜像配置文件中数据进行解析,获得各容器镜像配置文件对应的功能性代码片段和基础镜像;
将各所述功能性代码片段表征为抽象语法树结构;
获得所述抽象语法树结构从根节点到各叶子节点的多条路径,各条路径包括从根节点到对应叶子节点之间的结构序列和对应的叶子节点;
以各所述功能性代码片段对应的多个结构序列和对应的叶子节点为输入,以各所述功能性代码片段对应的基础镜像为输出训练神经网络模型,获得容器基础镜像推荐模型;
获得待推荐的功能性代码片段的多个结构序列和对应的叶子节点;
将所述待推荐的功能性代码片段的多个结构序列和对应的叶子节点输入所述容器基础镜像推荐模型,获得所述待推荐的功能性代码片段对应的基础镜像。


2.根据权利要求1所述的基于配置代码表征的容器基础镜像推荐方法,其特征在于,所述获得容器镜像配置数据集,具体包括:
获得开源项目集;
从所述开源项目集中筛选出包括镜像配置文件的项目,获得容器镜像数据库;
剔除所述容器镜像数据库中重复的容器镜像配置文件,获得由多个不同内容的容器镜像配置文件构成的容器镜像配置数据集。


3.根据权利要求2所述的基于配置代码表征的容器基础镜像推荐方法,其特征在于,所述获得开源项目集,具体包括:
从开源社区代码托管平台中,筛选star指标大于第一设定值且Issue指标大于第二设定值的开源项目,获得开源项目集。


4.根据权利要求2所述的基于配置代码表征的容器基础镜像推荐方法,其特征在于,所述剔除所述容器镜像数据库中重复的容器镜像配置文件,获得由多个不同内容的容器镜像配置文件构成的容器镜像配置数据集,具体包括:
获得容器镜像数据库中各所述容器镜像文件的哈希值;
根据各所述容器镜像文件的哈希值剔除所述容器镜像数据库中重复的容器镜像配置文件,获得由多个不同内容的容器镜像配置文件构成的容器镜像配置数据集。


5.根据权利要求1所述的基于配置代码表征的容器基础镜像推荐方法,其特征在于,所述神经网络模型为基于注意力机制的神经网络模型。


6.一种基于配置代码表征的容器基础镜像推荐系统,其特征在于,所述系统包括:
数据集获取模块,用于获得...

【专利技术属性】
技术研发人员:毛新军张银园张洋卢遥王涛张璋
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南;43

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

1