摘要:Dockerfile是构建Docker应用镜像的脚本代码,包含软件系统镜像构建所需的软件包及其依赖的下载、安装和配置的所有指令。编写Dockerfile需要丰富的领域知识,否则编写的Dockerfile容易产生镜像构建错误。针对此问题,提出一种基于领域知识的Docker镜像自动构建方法。该方法通过对大规模Dockerfile的自动解析,分析提取构建Docker镜像所需的软件依赖及安装配置等领域知识;在面向特定软件系统构建镜像时,从已构建的领域知识库中分析推断指定软件的依赖关系及安装操作,生成Dockerfile来构建Docker镜像。实验结果表明,该方法具有利用领域知识推断系统依赖关系和软件包安装方式、生成不同软件Dockerfile的能力。
关键词:Docker, Dockerfile, 知识图谱, 软件包, 系统依赖
1 引言
在传统软件开发过程中,开发部署和运行演化两阶段相互割裂,各阶段数据汇聚与知识提炼、关联与运用程度低,难以快速响应需求变化。为此,开发运维一体化(DevOps)被提出,旨在加强开发和运维部门之间的沟通协作,提高软件运行演化过程中生产活动的效率和质量。DevOps的引入对软件产品的开发、测试、交付和运维有重要意义。
Docker是当前主流的容器技术,在DevOps中被广泛使用。Docker容器是Docker镜像的实例,封装了软件应用程序及其系