[发明专利]基于buildah构建跨平台容器镜像的方法、系统及电子设备在审
申请号: | 202210027222.7 | 申请日: | 2022-01-11 |
公开(公告)号: | CN114443221A | 公开(公告)日: | 2022-05-06 |
发明(设计)人: | 宋景略 | 申请(专利权)人: | 徐工汉云技术股份有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F8/41;G06F8/61 |
代理公司: | 南京纵横知识产权代理有限公司 32224 | 代理人: | 许婉静 |
地址: | 221000 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 buildah 构建 平台 容器 方法 系统 电子设备 | ||
本发明公开一种基于buildah构建跨平台容器镜像的方法、系统及电子设备,方法包括:启用QEMU模拟器,为构建跨平台容器镜像提供多种CPU架构;启用binfmt_misc,将目标平台的CPU架构转换为当前系统支持的CPU架构;启用buildah工具,传入目标平台的CPU架构信息,根据CPU架构信息拉取基础镜像,对多个目标平台的容器镜像进行构建。调用QEMU模拟器来执行不同CPU指令集;再调用binfmt_misc支持工具,以便能够支持二进制,并在注册QEMU模拟器时实际使用;最后采用buildah工具来构建跨平台的CPU架构的容器镜像,根据指定的CPU架构信息拉取特定的基础镜像,无需在文件做变量替换等方式,简化了Dokcerfile编写和使用的复杂度。
技术领域
本发明涉及计算机程序技术领域,具体涉及一种基于buildah构建跨平台容器镜像的方法、系统及电子设备。
背景技术
在日常工作中,经常需要将某个程序跑在不同的CPU架构上,比如让某些软件运行在嵌入式路由器设备上。特别是容器技术席卷全球之后,可以轻松地在ARM设备上通过容器部署各种应用,而不用在意各种系统的差异性。但是想要跨平台构建容器镜像并不是一件轻松的活,要么到不同CPU架构的系统上全部构建一遍,要么就得在当前系统上通过虚拟化技术模拟不同的CPU架构,最后可能还要想办法合并镜像。
要实现一次构建,随处可用,挑战在于:Linux、Windows这些不同的操作系统拥有不同的系统API;x86、Arm、IBM PowerPC这些不同的硬件平台的指令集不同,某些同平台的硬件甚至拥有不同的专用指令集用于加速应用。因此,要构建能够在不同操作系统、不同硬件平台的运行的应用程序,仍然需要工程师们针对具体的操作系统和硬件平台进行海量的移植工作。
经检索发现,公开号CN111309451A的中国专利于2020年06月19日公开了一种实现Docker镜像交叉编译的方法,具体包括以下步骤:S1、在Docker镜像交叉编译环境系统上安装qemu-user-static服务程序,S2、检查Linux系统中的binfmt_misc是否注册对应的模拟器配置,S3、确定需要交叉编译的Docker镜像的CPU架构类型,S4、编写构建Docker镜像的Dockerfile文件,不同目标CPU架构的Docker镜像使用同一个Dockerfile文件来构建,S5、通过查看生成的Docker镜像中的标识来确认校验生成的Docker镜像是否为目标CPU架构的镜像,本发明涉及计算机程序技术领域。该实现Docker镜像交叉编译的方法,在启动应用编译环境时,能够完全的屏蔽掉底层硬件设施的差异,解决了跨平台交叉编译的问题,从而使得能够在快速启动应用交叉编译环境的同时,也能够屏蔽掉底层硬件差异带来的问题。
但是,该专利需下载基础镜像并更改tag,增加dockerfile环境变量,构建容器镜像的方法相对复杂。因此,基于buildah工具,研究并使用更为简单的方法,实现容器镜像的构建,仍然是本领域技术人员研究的方向。
发明内容
为克服上述现有技术的不足,本发明提供一种基于buildah构建跨平台容器镜像的方法、系统及电子设备,使用更为简单的方法,实现容器镜像的构建。
本发明一方面提供一种基于buildah构建跨平台容器镜像的方法,包括,启用QEMU模拟器,为构建跨平台容器镜像提供多种CPU架构;启用binfmt_misc,将目标平台的CPU架构转换为当前系统支持的CPU架构;启用buildah工具,传入目标平台的CPU架构信息,根据CPU架构信息拉取基础镜像,对多个目标平台的容器镜像进行构建。
上述技术方案中,调用QEMU模拟器来执行不同CPU指令集;再调用binfmt_misc支持工具,以便能够支持二进制,并在注册QEMU模拟器时实际使用;最后采用buildah工具来构建跨平台的CPU架构的容器镜像,根据指定的CPU架构信息拉取特定的基础镜像,无需在文件做变量替换等方式,简化了Dokcerfile编写和使用的复杂度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于徐工汉云技术股份有限公司,未经徐工汉云技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210027222.7/2.html,转载请声明来源钻瓜专利网。