CN111008016B - 一种基于docker容器多环境编译系统及方法 - Google Patents

一种基于docker容器多环境编译系统及方法 Download PDF

Info

Publication number
CN111008016B
CN111008016B CN201911195987.6A CN201911195987A CN111008016B CN 111008016 B CN111008016 B CN 111008016B CN 201911195987 A CN201911195987 A CN 201911195987A CN 111008016 B CN111008016 B CN 111008016B
Authority
CN
China
Prior art keywords
compiling
mirror image
environment
dock
container
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.)
Active
Application number
CN201911195987.6A
Other languages
English (en)
Other versions
CN111008016A (zh
Inventor
杜超
王峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baofu Network Technology Shanghai Co ltd
Original Assignee
Baofu Network Technology Shanghai Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Baofu Network Technology Shanghai Co ltd filed Critical Baofu Network Technology Shanghai Co ltd
Priority to CN201911195987.6A priority Critical patent/CN111008016B/zh
Publication of CN111008016A publication Critical patent/CN111008016A/zh
Application granted granted Critical
Publication of CN111008016B publication Critical patent/CN111008016B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

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容器多环境编译系统及方法,其特征在于,包括镜像生成模块、镜像获取模块、编译模块基于docker容器多环境编译系统主要作用是在系统集成过程中对所需要发布的程序(如java或golang或其它不同需要编译的语言)进行编译,将编译后的文件包发送到目标服务器,主要承担程序编译的任务。系统支持的程序语言不受任何限制,能够针对不同的程序语言选择不同的编译工具版本进行快速编译工作。

Description

一种基于docker容器多环境编译系统及方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于docker容器多环境编译系统及方法。
背景技术
在持续集成和发布的管理系统中,需要服务器单独对从代码库中拉取的代码进行编译及发布,而在编译的过程中,不同的项目所需要的编译工具链可能是不同的,所以就涉及到对编译工具版本的管理问题。
发明内容
本发明所要解决目编译的多环境管理问题,提供一种基于docker容器多环境编译系统及方法。
为解决上述技术问题,本发明采用的技术方案是
本发明提供一种基于docker容器多环境编译系统及方法,其特征在于,包括:
镜像生成模块:根据不同语言环境不同编译工具制作相应的docker镜像;
镜像获取模块:在启动docker容器时,将host服务器上的项目存放路径挂载到每个docker镜像中;
编译模块:根据项目代码对编译工具版本的需求,在对应的docker容器内部对项目进行相应的编译。
进一步地,所述的多环境编译系统,其特征在于所述的镜像生成模块步骤如下:
步骤1,根据所需要发布的项目要求编译工具版本制作相应的docker镜像;
步骤2,将制作好的镜像推入镜像库中。
进一步地,所述的多环境编译系统,其特征在于所述的镜像获取模块包括:
镜像匹配单元:在服务器端从镜像库中拉取所需要的编译环境(即不同的docker镜像);
镜像加载单元:在启动docker容器时,将host服务器上的项目存放路径挂载到每个docker镜像中。
进一步地,所述的多环境编译系统,其特征在于所述的编译模块步骤如下:
步骤1,根据项目代码对编译工具版本的需求,在对应的docker容器内部对项目进行相应的编译;
步骤2,在host服务器上可直接获取到编译好的文件包。
进一步地,所述的多环境编译系统,其特征在于系统运行操作系统基于linux操作系统。
进一步地,所述的多环境编译系统,其特征在于需要安装软件版本管理命令,不限于update-alternatives工具,可实现在不同版本间切换的需求。
进一步地,所述的多环境编译系统,其特征在于需要安装针对不同的语言环境有针对性的安装相应的编译版本切换工具。
本发明还公开了一种基于docker容器多环境编译方法,其特征在于,步骤如下:
步骤1,根据不同语言环境不同编译工具制作相应的docker镜像;
步骤2,在服务器端从镜像库中拉取所需要的编译环境(即不同的docker镜像);
步骤3,在启动docker容器时,将host服务器上的项目存放路径挂载到每个docker镜像中;
步骤4,根据项目代码对编译工具版本的需求,在对应的docker容器内部对项目进行相应的编译,以此达到对各版本环境的隔离;
步骤5,在host服务器上可直接获取到编译好的文件包。
本发明还公开了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1所述基于docker容器多环境编译系统。
本发明还公开了一种一种装置/终端设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序所述处理器执行所述计算机程序时实现如权利要求1所述基于docker容器多环境编译系统。
本发明提供了一种基于docker容器多环境编译系统及方法。该系统方案具特点如下:
1、在项目的编译过程中,能够快速根据所需工具版本进行相应的编译工作,减少了出错的概率。
2、使编译系统变的简单、易用。做到了服务器的插拔式服务,当需要不同编译工具时可随时从镜像库中拉取并启动使用,当淘汰掉某些编译工具时,可直接进行删除处理。
3、使系统程序变的更简单,更易于维护。避免了不同的版本间的来回切换,使逻辑更清晰。
4、易于扩展。当需要新的服务器作为编译服务器进行工作时,只需要将相应的镜像拉取到服务器并启动系统即可。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1是本申请服务器结构示意图。
具体实施方式
实施例1
以一台服务器需要支持java jdk1.6,jdk1.7,jdk1.8,node 8,node 10五种环境为例,可制作5种docker镜像,然后在服务器上启动这5个容器,这样可同时进行5种不同环境需求的项目编译,实现环境的完全隔离,减少编译的相互影响。
本申请提供一种基于docker容器多环境编译系统及方法,其特征在于,包括:
镜像生成模块、镜像获取模块、编译模块。
优选的,所述的多环境编译系统,其特征在于所述的镜像生成模块步骤如下:
步骤1,根据所需要发布的项目要求编译工具版本制作相应的docker镜像,根据java编译环境不同的jdK版本代表不同的编译环境,对应不同的docker容器环境:jdk1.6,jdk1.7,jdk1.8,node 8,node 10;
步骤2,将制作好的镜像推入镜像库中。
优选的,所述的多环境编译系统,其特征在于所述的镜像获取模块包括:
镜像匹配单元:在服务器端从镜像库中拉取所需要的编译环境(即不同的docker镜像):docker jdk1.6,docker jdk1.7,docker jdk1.8,docker node
8,docker node 10;
镜像加载单元:在启动docker容器时,将host服务器上的项目存放路径挂载到每个docker镜像中,如图1所示。
优选的,所述的多环境编译系统,其特征在于所述的编译模块步骤如下:
步骤1,根据项目代码对编译工具版本的需求,在对应的docker容器内部对项目进行相应的编译;
步骤2,在host服务器上可直接获取到编译好的文件包。
优选的,所述的多环境编译系统,其特征在于系统运行操作系统基于linux操作系统。
优选的,所述的多环境编译系统,其特征在于需要安装软件版本管理命令,不限于update-alternatives工具,可实现在不同版本间切换的需求。
优选的,所述的多环境编译系统,其特征在于需要安装针对不同的语言环境有针对性的安装相应的编译版本切换工具。
以上对本发明的具体实施例进行了详细描述,但其只是作为范例,本发明并不限制于以上描述的具体实施例。对于本领域技术人员而言,任何对本发明进行的等同修改和替代也都在本发明的范畴之中。因此,在不脱离本发明的精神和范围下所作的均等变换和修改,都应涵盖在本发明的范围内。

Claims (4)

1.一种基于docker容器多环境编译系统,其特征在于,包括:
镜像生成模块:根据不同语言环境不同编译工具制作相应的docker镜像,具体包括:根据所需要发布的项目要求编译工具版本制作相应的docker镜像,并将制作好的镜像推入镜像库中;
镜像获取模块:在启动docker容器时,将host服务器上的项目存放路径挂载到每个docker镜像中;
其中,所述的镜像获取模块包括:
镜像匹配单元:在服务器端从镜像库中拉取所需要的编译环境;
镜像加载单元:在启动docker容器时,将host服务器上的项目存放路径挂载到每个docker镜像中;
编译模块:根据项目代码对编译工具版本的需求,在对应的docker容器内部对项目进行相应的编译,以及在host服务器上直接获取编译好的文件包;其中,编译系统运行的操作系统是基于linux操作系统;编译系统需要安装软件版本管理命令,不限于update-alternatives工具,实现在不同版本间的切换;编译系统需要针对不同的语言环境安装相应的编译版本切换工具。
2.一种基于权利要求1所述docker容器多环境编译系统的编译方法,其特征在于,包括如下步骤:
步骤1,根据不同语言环境不同编译工具制作相应的docker镜像;
步骤2,在服务器端从镜像库中拉取所需要的编译环境;
步骤3,在启动docker容器时,将host服务器上的项目存放路径挂载到每个docker镜像中;
步骤4,根据项目代码对编译工具版本的需求,在对应的docker容器内部对项目进行相应的编译,以此达到对各版本环境的隔离;
步骤5,在host服务器上可直接获取到编译好的文件包。
3.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1所述基于docker容器多环境编译系统。
4.一种装置,其特征在于,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序所述处理器执行所述计算机程序时实现如权利要求1所述基于docker容器多环境编译系统。
CN201911195987.6A 2019-11-29 2019-11-29 一种基于docker容器多环境编译系统及方法 Active CN111008016B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911195987.6A CN111008016B (zh) 2019-11-29 2019-11-29 一种基于docker容器多环境编译系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911195987.6A CN111008016B (zh) 2019-11-29 2019-11-29 一种基于docker容器多环境编译系统及方法

Publications (2)

Publication Number Publication Date
CN111008016A CN111008016A (zh) 2020-04-14
CN111008016B true CN111008016B (zh) 2024-05-14

Family

ID=70112406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911195987.6A Active CN111008016B (zh) 2019-11-29 2019-11-29 一种基于docker容器多环境编译系统及方法

Country Status (1)

Country Link
CN (1) CN111008016B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111796863B (zh) * 2020-07-10 2024-04-05 四川中电启明星信息技术有限公司 一种跨环境的项目版本的管理方法
CN112363733A (zh) * 2020-10-20 2021-02-12 深圳力维智联技术有限公司 一种基于Docker容器的持续集成方法
CN113805858B (zh) * 2021-02-10 2024-04-05 京东科技控股股份有限公司 持续部署脚本语言开发的软件的方法和装置
CN113064595A (zh) * 2021-03-22 2021-07-02 北京北信源软件股份有限公司 一种基于Docker镜像的QT应用程序编译方法和装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017020770A1 (zh) * 2015-07-31 2017-02-09 中兴通讯股份有限公司 基于lxc的持续集成方法及装置
CN106815052A (zh) * 2017-01-10 2017-06-09 南威软件股份有限公司 一种适配多环境配置的快速部署系统的方法
CN106873975A (zh) * 2016-12-30 2017-06-20 武汉默联股份有限公司 基于Docker的devops持续交付与自动化系统及方法
WO2017166529A1 (zh) * 2016-03-29 2017-10-05 乐视控股(北京)有限公司 一种针对多个编译平台的编译系统和方法
CN107741851A (zh) * 2017-10-12 2018-02-27 北京元心科技有限公司 编译系统的编译方法、装置及终端设备
CN108984179A (zh) * 2018-06-28 2018-12-11 北京奇安信科技有限公司 一种Linux下编译处理方法及装置
CN109032602A (zh) * 2018-06-07 2018-12-18 山东超越数控电子股份有限公司 一种软件自动适配操作系统的方法
CN109491662A (zh) * 2018-10-31 2019-03-19 珠海市筑巢科技有限公司 代码打包方法、计算机装置及计算机可读存储介质、代码打包系统
WO2019095936A1 (zh) * 2017-11-15 2019-05-23 腾讯科技(深圳)有限公司 容器镜像的构建方法、系统、服务器、装置及存储介质
CN110489126A (zh) * 2019-08-08 2019-11-22 腾讯科技(深圳)有限公司 编译任务的执行方法和装置、存储介质及电子装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017020770A1 (zh) * 2015-07-31 2017-02-09 中兴通讯股份有限公司 基于lxc的持续集成方法及装置
WO2017166529A1 (zh) * 2016-03-29 2017-10-05 乐视控股(北京)有限公司 一种针对多个编译平台的编译系统和方法
CN106873975A (zh) * 2016-12-30 2017-06-20 武汉默联股份有限公司 基于Docker的devops持续交付与自动化系统及方法
CN106815052A (zh) * 2017-01-10 2017-06-09 南威软件股份有限公司 一种适配多环境配置的快速部署系统的方法
CN107741851A (zh) * 2017-10-12 2018-02-27 北京元心科技有限公司 编译系统的编译方法、装置及终端设备
WO2019095936A1 (zh) * 2017-11-15 2019-05-23 腾讯科技(深圳)有限公司 容器镜像的构建方法、系统、服务器、装置及存储介质
CN109032602A (zh) * 2018-06-07 2018-12-18 山东超越数控电子股份有限公司 一种软件自动适配操作系统的方法
CN108984179A (zh) * 2018-06-28 2018-12-11 北京奇安信科技有限公司 一种Linux下编译处理方法及装置
CN109491662A (zh) * 2018-10-31 2019-03-19 珠海市筑巢科技有限公司 代码打包方法、计算机装置及计算机可读存储介质、代码打包系统
CN110489126A (zh) * 2019-08-08 2019-11-22 腾讯科技(深圳)有限公司 编译任务的执行方法和装置、存储介质及电子装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张璜 ; .基于支持移动终端的C语言在线编译系统开发研究.佳木斯职业学院学报.2018,(01),全文. *

Also Published As

Publication number Publication date
CN111008016A (zh) 2020-04-14

Similar Documents

Publication Publication Date Title
CN111008016B (zh) 一种基于docker容器多环境编译系统及方法
CN110377290B (zh) 一种目标工程编译的方法、装置及设备
CN107577491B (zh) 一种基于Weex的移动应用内版本更新的方法、系统
US7739679B2 (en) Object ordering tool for facilitating generation of firmware update friendly binary image
US9489184B2 (en) Adaptive selection of programming language versions for compilation of software programs
CN106843936B (zh) 一种自动化部署Web应用环境的方法
CN100511156C (zh) 强制性地终止输入/输出操作阻止的线程的设备和方法
CN112764753B (zh) 一种项目的部署方法、装置、电子设备及存储介质
CN112711411B (zh) 一种基于Kubernetes及docker的CI/CD流水线系统
US9170825B2 (en) Interface method resolution for virtual extension methods
JP7311710B2 (ja) 実行時コンテナ
CN108762767B (zh) 应用发布方法、装置及计算机可读存储介质
CN110888652B (zh) 基于jenkins插件的多版本构建方法及终端
CN111078229A (zh) 一种应用程序处理方法、装置、存储介质及电子设备
CN112256278A (zh) 编译方法、装置、设备及存储介质
US10019345B2 (en) Executing multi-version tests against a multi-version application
US9058240B2 (en) Multi-context remote development
CN110659088B (zh) 一种嵌入式环境下程序扩展的方法及系统
CN104423948A (zh) 自动化脚本运行方法及装置
US20050055678A1 (en) Method and apparatus for managing software in computer system using virtual machine
CN114090189A (zh) 一种基于流水线的构建部署管理方法及系统
US7757205B2 (en) System for preparing a standard framework for automation appliances
CN112905211A (zh) 固件升级文件更新方法、系统、设备及存储介质
KR20110065183A (ko) 로봇 시스템 제어 방법 및 장치
CN111831301A (zh) 支持无分叉升级的区块链运行时环境系统、方法

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
GR01 Patent grant
GR01 Patent grant