CN111309451A - 一种实现Docker镜像交叉编译的方法 - Google Patents
一种实现Docker镜像交叉编译的方法 Download PDFInfo
- Publication number
- CN111309451A CN111309451A CN202010213739.6A CN202010213739A CN111309451A CN 111309451 A CN111309451 A CN 111309451A CN 202010213739 A CN202010213739 A CN 202010213739A CN 111309451 A CN111309451 A CN 111309451A
- Authority
- CN
- China
- Prior art keywords
- docker
- image
- cross
- compilation
- mirror image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种实现Docker镜像交叉编译的方法,具体包括以下步骤:S1、在Docker镜像交叉编译环境系统上安装qemu‑user‑static服务程序,S2、检查Linux系统中的binfmt_misc是否注册对应的模拟器配置,S3、确定需要交叉编译的Docker镜像的CPU架构类型,S4、编写构建Docker镜像的Dockerfile文件,不同目标CPU架构的Docker镜像使用同一个Dockerfile文件来构建,S5、通过查看生成的Docker镜像中的标识来确认校验生成的Docker镜像是否为目标CPU架构的镜像,本发明涉及计算机程序技术领域。该实现Docker镜像交叉编译的方法,在启动应用编译环境时,能够完全的屏蔽掉底层硬件设施的差异,解决了跨平台交叉编译的问题,从而使得能够在快速启动应用交叉编译环境的同时,也能够屏蔽掉底层硬件差异带来的问题。
Description
技术领域
本发明涉及计算机程序技术领域,具体为一种实现Docker镜像交叉编译的方法。
背景技术
Docker是目前最为流行的Linux容器解决方案,提供简单易用的容器使用接口。Docker将应用程序与该程序的依赖文件,打包到一个镜像文件中。通过运行这个打包的镜像文件,就会生成一个虚拟容器,应用程序在这个虚拟容器里运行,就好像运行在真实的服务器上一样,通过这样的方式对应用的运行时环境进行打包,有助于实现应用部署的便捷性、应用测试环境搭建的灵活性、跨平台迁移的快捷性。应用程序打包成容器镜像后,可以运行在任何环境中,包括:物理服务器、虚拟机、公有云、私有云等。由于Docker具备的应用运行环境打包、容器轻量化等特性,使得Docker技术应用在越来越广泛的场景之中,尤其是在跨CPU架构的应用迁移、打包、编译的场景中,通过运行已经打包好的应用编译环境的容器镜像,可以快速的启动应用的编译环境,并编译对应CPU架构的可执行程序。
但是,由于Docker镜像只是应用运行环境的打包,使其对所运行的宿主机的CPU架构、内核版本有要求,比如:不能将运行在AMD64 CPU架构机器上的Docker镜像,直接运行在ARM64 CPU架构的机器之上。因此,在启动应用编译环境时,不能够完全的屏蔽掉底层硬件设施的差异,使得在实现应用交叉编译的功能时,只能解决编译环境快速启动问题,不能解决跨平台交叉编译的问题,因此,基于原有Docker镜像编译的方式需要进行优化,使得能够在快速启动应用交叉编译环境的同时,也能够屏蔽掉底层硬件差异带来的问题。
发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供了一种实现Docker镜像交叉编译的方法,现有的编译方法不能将运行在AMD64 CPU架构机器上的Docker镜像,直接运行在ARM64 CPU架构的机器之上,因此在启动应用编译环境时,不能够完全的屏蔽掉底层硬件设施的差异,使得在实现应用交叉编译的功能时,只能解决编译环境快速启动问题,不能解决跨平台交叉编译的问题。
(二)技术方案
为实现以上目的,本发明通过以下技术方案予以实现:一种实现Docker镜像交叉编译的方法,首先要实现Docker镜像交叉编译的效果,需要提前准备好测试环境的Linux操作系统和安装好Docker服务,具体包括以下步骤:
S1、在Docker镜像交叉编译环境系统上安装qemu-user-static服务程序,由于默认安装qemu-user-static包并没有安装所有CPU架构的模拟器,如需要编译的目标CPU架构镜像对应的模拟器没有安装,则需要重新编译QEMU服务包,提前下载QEMU服务代码,完成QEMU重新编译后,测试服务器即可运行目标CPU架构的程序;
S2、检查Linux系统中的binfmt_misc是否注册对应的模拟器配置,在安装QEMU服务时,QEMU自带的postinstall脚本会自动的将默认支持的CPU架构信息注册到binfmt_misc中,对应的系统路径为/proc/sys/fs/binfmt_misc,对于手动修改了binfmt_misc的配置信息时,需要进行重新加载,使用命令systemctl restart systemd-binfmt;
S3、确定需要交叉编译的Docker镜像的CPU架构类型,提前下载相应CPU架构的Docker基础镜像并重命名,命名规则为IMAGE_NAME-ARCH:TAG;
S4、编写构建Docker镜像的Dockerfile文件,不同目标CPU架构的Docker镜像使用同一个Dockerfile文件来构建,在Dockerfile定义引用基础镜像的语句中,拼接目标CPU的ARG值,在构建不同目标CPU架构时,动态的传入对应的架构名称,并引用对应CPU架构的基础镜像,在通过Dockerfile文件构建目标CPU架构的Docker镜像时,通过--build-arg ARCH=ARCH_NAME选项传入指定的CPU架构信息;
S5、校验生成的Docker镜像是否为目标CPU架构的镜像,通过查看生成的Docker镜像中的标识来确认。
优选的,所述步骤S1中在编译时,通过--target-list选项指定目标CPU架构的名称,比如新增对mips64el的CPU架构支持,加上选项--target-list=mips64el-softmmu。
优选的,所述步骤S2中当目标CPU信息注册成功后,在该目录下查看到对应CPU架构的配置信息,当执行可执行文件时,会根据可执行文件中的标识选取对应的QEMU模拟器来执行该程序,因此在服务器上运行目标CPU架构的Docker容器时,会调用QEMU模拟器来运行容器中的进程,实现跨平台容器运行的效果。
优选的,所述步骤S3中如果需要交叉编译的Docker镜像要支持ARM64与AMD64这两类CPU架构,并使用library/ubuntu:16.04作为基础镜像进行编译,那么需要提前下载该镜像并进行重命名,重命名后的镜像名称为:library/ubuntu-arm64:16.04、library/ubuntu-amd64:16.04。
优选的,所述步骤S4在Dockerfile定义引用基础镜像的语句中,拼接目标CPU的ARG值,比如在Dockerfile中定义FROM library/ubuntu-$ARCH:16.04,ARCH值通过ARG参数来配置。
优选的,所述步骤S4中由于Docker在根据Dockerfile构建镜像时,会基于基础镜像启动构建环境的容器,而目标CPU架构与本地CPU架构不一致,因此,会调用目标CPU架构的QEMU模拟器来运行构建环境容器中的进程,从而实现Docker的镜像交叉编译。
优选的,所述步骤S5中通过查看生成的Docker镜像中的标识确认校验生成的Docker镜像是否为目标CPU架构的镜像的命令为:docker inspect IMAGE_ID --format='{{.Architecture}}'
(三)有益效果
本发明提供了一种实现Docker镜像交叉编译的方法。与现有技术相比具备以下有益效果:
(1)、该实现Docker镜像交叉编译的方法,通过基于Docker技术实现容器镜像交叉编译的方法使用到了QEMU技术,通过QEMU在Linux上的用户态模式(User mod)来实现,在该模式下QEMU将通过binfmt_misc技术在Linux内核中注册一个二进制转换处理程序,并在程序运行时动态翻译二进制文件,根据需要将系统调用从目标CPU架构转换为当前系统的CPU架构,最终的效果看起来就像在本地运行目标CPU架构的二进制文件一样,通过QEMU的用户态模式,可以基于目标CPU架构的Docker镜像创建Docker容器,并且在Docker容器中完成对目标CPU架构的程序编译,实现在当前CPU架构的机器上编译目标CPU架构上的可执行程序的效果,而且编译的过程与在本地进行程序编译的效果是一致的,可实现将运行在AMD64 CPU架构机器上的Docker镜像,直接运行在ARM64 CPU架构的机器之上,因此,在启动应用编译环境时,能够完全的屏蔽掉底层硬件设施的差异,使得在实现应用交叉编译的功能时,不仅解决了编译环境快速启动问题,而且还解决了跨平台交叉编译的问题,从而使得能够在快速启动应用交叉编译环境的同时,也能够屏蔽掉底层硬件差异带来的问题。
(2)、该实现Docker镜像交叉编译的方法,Docker通过使用Dockerfile文件构建容器镜像时,通过ARG选项为构建的镜像传入参数,在构建目标CPU架构服务的容器镜像时,可以通过ARG参数定义基础Docker镜像的CPU架构配置,比如:在编译ARM64与AMD64的服务镜像时,使用同一个Dockerfile文件,通过拼接构建镜像时传入的ARG值来使用对应CPU架构的基础容器镜像,比如:FROM library/ubuntu:16.04-$ARCH,在构建镜像时,通过传入--build-arg ARCH=arm64参数,指定基于library/ubuntu:16.04-arm64镜像作为基础镜像,通过该方式可以实现交叉编译Docker镜像的标准化流程,通过ARG参数传入基础镜像的CPU架构,通过QEMU的用户态模式(User mod)让目标CPU架构的Docker容器能够运行在当前系统的 CPU 架构之上,实现Docker镜像交叉编译的效果。
附图说明
图1为本发明的工作流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例提供一种技术方案:一种实现Docker镜像交叉编译的方法,首先要实现Docker镜像交叉编译的效果,需要提前准备好测试环境的Linux操作系统和安装好Docker服务,具体包括以下步骤:
S1、在Docker镜像交叉编译环境系统上安装qemu-user-static服务程序,由于默认安装qemu-user-static包并没有安装所有CPU架构的模拟器,如需要编译的目标CPU架构镜像对应的模拟器没有安装,则需要重新编译QEMU服务包,提前下载QEMU服务代码,完成QEMU重新编译后,测试服务器即可运行目标CPU架构的程序,在编译时,通过--target-list选项指定目标CPU架构的名称,比如新增对mips64el的CPU架构支持,加上选项--target-list=mips64el-softmmu;
S2、检查Linux系统中的binfmt_misc是否注册对应的模拟器配置,在安装QEMU服务时,QEMU自带的postinstall脚本会自动的将默认支持的CPU架构信息注册到binfmt_misc中,对应的系统路径为/proc/sys/fs/binfmt_misc,对于手动修改了binfmt_misc的配置信息时,需要进行重新加载,使用命令systemctl restart systemd-binfmt,当目标CPU信息注册成功后,在该目录下查看到对应CPU架构的配置信息,当执行可执行文件时,会根据可执行文件中的标识选取对应的QEMU模拟器来执行该程序,因此在服务器上运行目标CPU架构的Docker容器时,会调用QEMU模拟器来运行容器中的进程,实现跨平台容器运行的效果;
S3、确定需要交叉编译的Docker镜像的CPU架构类型,提前下载相应CPU架构的Docker基础镜像并重命名,命名规则为IMAGE_NAME-ARCH:TAG,如果需要交叉编译的Docker镜像要支持ARM64与AMD64这两类CPU架构,并使用library/ubuntu:16.04作为基础镜像进行编译,那么需要提前下载该镜像并进行重命名,重命名后的镜像名称为:library/ubuntu-arm64:16.04、library/ubuntu-amd64:16.04;
S4、编写构建Docker镜像的Dockerfile文件,不同目标CPU架构的Docker镜像使用同一个Dockerfile文件来构建,在Dockerfile定义引用基础镜像的语句中,拼接目标CPU的ARG值,在构建不同目标CPU架构时,动态的传入对应的架构名称,并引用对应CPU架构的基础镜像,在通过Dockerfile文件构建目标CPU架构的Docker镜像时,通过--build-arg ARCH=ARCH_NAME选项传入指定的CPU架构信息,在Dockerfile定义引用基础镜像的语句中,拼接目标CPU的ARG值,比如在Dockerfile中定义FROM library/ubuntu-$ARCH:16.04,ARCH值通过ARG参数来配置,由于Docker在根据Dockerfile构建镜像时,会基于基础镜像启动构建环境的容器,而目标CPU架构与本地CPU架构不一致,因此,会调用目标CPU架构的QEMU模拟器来运行构建环境容器中的进程,从而实现Docker的镜像交叉编译;
S5、校验生成的Docker镜像是否为目标CPU架构的镜像,通过查看生成的Docker镜像中的标识来确认,其命令为:docker inspect IMAGE_ID --format='{{.Architecture}}'。
综上,本发明可实现将运行在AMD64 CPU架构机器上的Docker镜像,直接运行在ARM64 CPU架构的机器之上,因此,在启动应用编译环境时,能够完全的屏蔽掉底层硬件设施的差异,使得在实现应用交叉编译的功能时,不仅解决了编译环境快速启动问题,而且还解决了跨平台交叉编译的问题,从而使得能够在快速启动应用交叉编译环境的同时,也能够屏蔽掉底层硬件差异带来的问题。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (7)
1.一种实现Docker镜像交叉编译的方法,其特征在于:具体包括以下步骤:
S1、在Docker镜像交叉编译环境系统上安装qemu-user-static服务程序,由于默认安装qemu-user-static包并没有安装所有CPU架构的模拟器,如需要编译的目标CPU架构镜像对应的模拟器没有安装,则需要重新编译QEMU服务包,提前下载QEMU服务代码,完成QEMU重新编译后,测试服务器即可运行目标CPU架构的程序;
S2、检查Linux系统中的binfmt_misc是否注册对应的模拟器配置,在安装QEMU服务时,QEMU自带的postinstall脚本会自动的将默认支持的CPU架构信息注册到binfmt_misc中,对应的系统路径为/proc/sys/fs/binfmt_misc,对于手动修改了binfmt_misc的配置信息时,需要进行重新加载,使用命令systemctl restart systemd-binfmt;
S3、确定需要交叉编译的Docker镜像的CPU架构类型,提前下载相应CPU架构的Docker基础镜像并重命名,命名规则为IMAGE_NAME-ARCH:TAG;
S4、编写构建Docker镜像的Dockerfile文件,不同目标CPU架构的Docker镜像使用同一个Dockerfile文件来构建,在Dockerfile定义引用基础镜像的语句中,拼接目标CPU的ARG值,在构建不同目标CPU架构时,动态的传入对应的架构名称,并引用对应CPU架构的基础镜像,在通过Dockerfile文件构建目标CPU架构的Docker镜像时,通过--build-arg ARCH=ARCH_NAME选项传入指定的CPU架构信息;
S5、校验生成的Docker镜像是否为目标CPU架构的镜像,通过查看生成的Docker镜像中的标识来确认。
2.根据权利要求1所述的一种实现Docker镜像交叉编译的方法,其特征在于:所述步骤S1中在编译时,通过--target-list选项指定目标CPU架构的名称,比如新增对mips64el的CPU架构支持,加上选项--target-list=mips64el-softmmu。
3.根据权利要求1所述的一种实现Docker镜像交叉编译的方法,其特征在于:所述步骤S2中当目标CPU信息注册成功后,在该目录下查看到对应CPU架构的配置信息,当执行可执行文件时,会根据可执行文件中的标识选取对应的QEMU模拟器来执行该程序,因此在服务器上运行目标CPU架构的Docker容器时,会调用QEMU模拟器来运行容器中的进程。
4.根据权利要求1所述的一种实现Docker镜像交叉编译的方法,其特征在于:所述步骤S3中如果需要交叉编译的Docker镜像要支持ARM64与AMD64这两类CPU架构,并使用library/ubuntu:16.04作为基础镜像进行编译,那么需要提前下载该镜像并进行重命名,重命名后的镜像名称为:library/ubuntu-arm64:16.04、library/ubuntu-amd64:16.04。
5.根据权利要求1所述的一种实现Docker镜像交叉编译的方法,其特征在于:所述步骤S4在Dockerfile定义引用基础镜像的语句中,拼接目标CPU的ARG值,比如在Dockerfile中定义FROM library/ubuntu-$ARCH:16.04,ARCH值通过ARG参数来配置。
6.根据权利要求1所述的一种实现Docker镜像交叉编译的方法,其特征在于:所述步骤S4中由于Docker在根据Dockerfile构建镜像时,会基于基础镜像启动构建环境的容器,而目标CPU架构与本地CPU架构不一致,因此,会调用目标CPU架构的QEMU模拟器来运行构建环境容器中的进程,从而实现Docker的镜像交叉编译。
7.根据权利要求1所述的一种实现Docker镜像交叉编译的方法,其特征在于:所述步骤S5中通过查看生成的Docker镜像中的标识确认校验生成的Docker镜像是否为目标CPU架构的镜像的命令为:docker inspect IMAGE_ID --format='{{.Architecture}}'。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010213739.6A CN111309451B (zh) | 2020-03-24 | 2020-03-24 | 一种实现Docker镜像交叉编译的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010213739.6A CN111309451B (zh) | 2020-03-24 | 2020-03-24 | 一种实现Docker镜像交叉编译的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111309451A true CN111309451A (zh) | 2020-06-19 |
CN111309451B CN111309451B (zh) | 2023-07-14 |
Family
ID=71149859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010213739.6A Active CN111309451B (zh) | 2020-03-24 | 2020-03-24 | 一种实现Docker镜像交叉编译的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309451B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115451A (zh) * | 2020-09-28 | 2020-12-22 | 天地伟业技术有限公司 | 一种在ARM架构的Docker容器中识别热插拔硬件USB加密狗的方法 |
CN112363803A (zh) * | 2020-11-13 | 2021-02-12 | 浪潮电子信息产业股份有限公司 | 一种镜像构建方法、系统、设备及介质 |
CN112558991A (zh) * | 2020-12-18 | 2021-03-26 | 北京华胜天成科技股份有限公司 | 镜像管理方法及系统、云管理平台、存储介质 |
CN112667352A (zh) * | 2020-12-28 | 2021-04-16 | 浪潮云信息技术股份公司 | 一种多cpu指令交叉编译统一构建方法、设备及介质 |
CN113220300A (zh) * | 2021-04-29 | 2021-08-06 | 麒麟软件有限公司 | 一种应用于Android系统x86架构上的ARM指令集转换方法 |
CN114168153A (zh) * | 2022-02-10 | 2022-03-11 | 统信软件技术有限公司 | 一种编译方法、计算设备及存储介质 |
CN114168150A (zh) * | 2021-12-10 | 2022-03-11 | 北京鲸鲮信息系统技术有限公司 | 应用程序编译方法、装置、电子设备及存储介质 |
CN114168151A (zh) * | 2021-12-10 | 2022-03-11 | 北京鲸鲮信息系统技术有限公司 | 基于容器的程序编译方法、装置、电子设备及存储介质 |
CN115562813A (zh) * | 2022-10-27 | 2023-01-03 | 北京同创永益科技发展有限公司 | 一种云原生环境动态构建工作负载的方法及系统 |
CN115756514A (zh) * | 2022-11-14 | 2023-03-07 | 中国电子科技集团公司第十五研究所 | 一种软件自动化编译方法及系统 |
CN116578280A (zh) * | 2023-07-12 | 2023-08-11 | 北京麟卓信息科技有限公司 | 一种异构软件应用开发系统及方法 |
CN116594647A (zh) * | 2023-06-09 | 2023-08-15 | 中国水利水电科学研究院 | 一种基于Docker技术的软件适配方法 |
CN116795453A (zh) * | 2023-08-28 | 2023-09-22 | 成都中科合迅科技有限公司 | 应用程序的多cpu架构调用控制方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880498A (zh) * | 2012-09-13 | 2013-01-16 | 深圳市佳创软件有限公司 | 在安卓系统的装置上虚拟sd卡的方法 |
CN106933635A (zh) * | 2017-03-15 | 2017-07-07 | 北京搜狐新媒体信息技术有限公司 | Docker镜像生成方法及Docker容器 |
CN107943485A (zh) * | 2017-12-11 | 2018-04-20 | 北京奇虎科技有限公司 | 一种补丁编译平台及补丁编译方法 |
US20180159701A1 (en) * | 2016-11-18 | 2018-06-07 | Securboration, Inc. | Resilient polymorphic network architectures |
CN109871213A (zh) * | 2018-12-25 | 2019-06-11 | 武汉烽火信息集成技术有限公司 | 基于国产平台的OpenStack容器化系统及方法 |
-
2020
- 2020-03-24 CN CN202010213739.6A patent/CN111309451B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880498A (zh) * | 2012-09-13 | 2013-01-16 | 深圳市佳创软件有限公司 | 在安卓系统的装置上虚拟sd卡的方法 |
US20180159701A1 (en) * | 2016-11-18 | 2018-06-07 | Securboration, Inc. | Resilient polymorphic network architectures |
CN106933635A (zh) * | 2017-03-15 | 2017-07-07 | 北京搜狐新媒体信息技术有限公司 | Docker镜像生成方法及Docker容器 |
CN107943485A (zh) * | 2017-12-11 | 2018-04-20 | 北京奇虎科技有限公司 | 一种补丁编译平台及补丁编译方法 |
CN109871213A (zh) * | 2018-12-25 | 2019-06-11 | 武汉烽火信息集成技术有限公司 | 基于国产平台的OpenStack容器化系统及方法 |
Non-Patent Citations (2)
Title |
---|
林炎 等: "Windows平台下构建嵌入式Linux交叉编译环境" * |
耿朋 等: "面向Dockerfile的容器镜像构建工具" * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115451B (zh) * | 2020-09-28 | 2024-04-12 | 天地伟业技术有限公司 | 一种在ARM架构的Docker容器中识别热插拔硬件USB加密狗的方法 |
CN112115451A (zh) * | 2020-09-28 | 2020-12-22 | 天地伟业技术有限公司 | 一种在ARM架构的Docker容器中识别热插拔硬件USB加密狗的方法 |
CN112363803B (zh) * | 2020-11-13 | 2022-06-07 | 浪潮电子信息产业股份有限公司 | 一种镜像构建方法、系统、设备及介质 |
CN112363803A (zh) * | 2020-11-13 | 2021-02-12 | 浪潮电子信息产业股份有限公司 | 一种镜像构建方法、系统、设备及介质 |
CN112558991A (zh) * | 2020-12-18 | 2021-03-26 | 北京华胜天成科技股份有限公司 | 镜像管理方法及系统、云管理平台、存储介质 |
CN112667352A (zh) * | 2020-12-28 | 2021-04-16 | 浪潮云信息技术股份公司 | 一种多cpu指令交叉编译统一构建方法、设备及介质 |
CN113220300A (zh) * | 2021-04-29 | 2021-08-06 | 麒麟软件有限公司 | 一种应用于Android系统x86架构上的ARM指令集转换方法 |
CN114168150A (zh) * | 2021-12-10 | 2022-03-11 | 北京鲸鲮信息系统技术有限公司 | 应用程序编译方法、装置、电子设备及存储介质 |
CN114168151A (zh) * | 2021-12-10 | 2022-03-11 | 北京鲸鲮信息系统技术有限公司 | 基于容器的程序编译方法、装置、电子设备及存储介质 |
CN114168153B (zh) * | 2022-02-10 | 2022-05-20 | 统信软件技术有限公司 | 一种编译方法、计算设备及存储介质 |
CN114168153A (zh) * | 2022-02-10 | 2022-03-11 | 统信软件技术有限公司 | 一种编译方法、计算设备及存储介质 |
CN115562813A (zh) * | 2022-10-27 | 2023-01-03 | 北京同创永益科技发展有限公司 | 一种云原生环境动态构建工作负载的方法及系统 |
CN115756514A (zh) * | 2022-11-14 | 2023-03-07 | 中国电子科技集团公司第十五研究所 | 一种软件自动化编译方法及系统 |
CN116594647A (zh) * | 2023-06-09 | 2023-08-15 | 中国水利水电科学研究院 | 一种基于Docker技术的软件适配方法 |
CN116578280A (zh) * | 2023-07-12 | 2023-08-11 | 北京麟卓信息科技有限公司 | 一种异构软件应用开发系统及方法 |
CN116578280B (zh) * | 2023-07-12 | 2023-09-15 | 北京麟卓信息科技有限公司 | 一种异构软件应用开发系统及方法 |
CN116795453A (zh) * | 2023-08-28 | 2023-09-22 | 成都中科合迅科技有限公司 | 应用程序的多cpu架构调用控制方法和系统 |
CN116795453B (zh) * | 2023-08-28 | 2023-11-03 | 成都中科合迅科技有限公司 | 应用程序的多cpu架构调用控制方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111309451B (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111309451A (zh) | 一种实现Docker镜像交叉编译的方法 | |
US10296323B2 (en) | System and method for fast initial and incremental deployment of apps | |
US9811360B2 (en) | Dynamic determination of application server runtime classloading | |
US9519472B2 (en) | Automation of virtual machine installation by splitting an installation into a minimal installation and customization | |
US9996374B2 (en) | Deployment and installation of updates in a virtual environment | |
CN108847950B (zh) | 电子装置、云系统软件自动部署方法及存储介质 | |
CN110187910B (zh) | 一种热更新方法、装置、设备及计算机可读存储介质 | |
CN105786538B (zh) | 基于安卓系统的软件升级方法和装置 | |
CN111492347A (zh) | 用于更新容器的系统和方法 | |
CN106020873B (zh) | 补丁包加载方法及装置 | |
CN106648755B (zh) | 一种在安卓art环境中动态加载dex的方法及装置 | |
CN110262825B (zh) | 热更新方法、装置、电子设备及可读存储介质 | |
CN112189187A (zh) | 统一平台的可扩展性 | |
CN109857432B (zh) | 一种游戏应用的热更新方法和装置 | |
CN115629971A (zh) | 一种应用的开发系统和开发方法 | |
CN110716786B (zh) | 一种页面展示方法、系统及存储介质 | |
WO2022097020A1 (en) | Updated shared library reloading without stopping execution of an application | |
CN112631915B (zh) | 一种pcie设备软件仿真的方法、系统、设备及介质 | |
CN111966470B (zh) | 虚拟机监控器的加载方法、装置和电子设备 | |
US10552135B1 (en) | Reducing a size of an application package | |
WO2021009612A1 (en) | Method for a container-based virtualization system | |
CN116820606A (zh) | 引导程序配置方法、装置、设备以及存储介质 | |
CN110362320B (zh) | 一种应用开发平台的命令实现方法和装置 | |
US20240168732A1 (en) | Method for generating driver package, method for deploying driver, electronic device, and computer readable storage medium | |
RU2521265C2 (ru) | Система и способ автоматической обработки системных ошибок программного обеспечения |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 530033 room 1516-11, standard workshop complex building, Lihui science and Technology Industrial Park, No. 5, Hongsheng Road, Nanning, Guangxi Zhuang Autonomous Region Applicant after: Guangxi Gradient Technology Co.,Ltd. Address before: 530000 room 1516-11, standard workshop complex building, Lihui science and Technology Industrial Park, No. 5 Hongsheng Road, Nanning, Guangxi Zhuang Autonomous Region Applicant before: Guangxi Gradient Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |