CN107766126B - 容器镜像的构建方法、系统、装置及存储介质 - Google Patents

容器镜像的构建方法、系统、装置及存储介质 Download PDF

Info

Publication number
CN107766126B
CN107766126B CN201711132025.7A CN201711132025A CN107766126B CN 107766126 B CN107766126 B CN 107766126B CN 201711132025 A CN201711132025 A CN 201711132025A CN 107766126 B CN107766126 B CN 107766126B
Authority
CN
China
Prior art keywords
container
server
mirror image
application program
construction
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
CN201711132025.7A
Other languages
English (en)
Other versions
CN107766126A (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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing 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 Tencent Technology Shenzhen Co Ltd, Tencent Cloud Computing Beijing Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201711132025.7A priority Critical patent/CN107766126B/zh
Publication of CN107766126A publication Critical patent/CN107766126A/zh
Priority to PCT/CN2018/111273 priority patent/WO2019095936A1/zh
Application granted granted Critical
Publication of CN107766126B publication Critical patent/CN107766126B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • 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/45595Network integration; Enabling network access in virtual machine instances

Abstract

本发明公开了一种镜像容器的构建方法、系统、装置及存储介质,属于互联网技术领域。该方法应用于容器镜像构建系统,方法包括:当检测到应用程序的代码更新时,代码仓库服务器向镜像构建逻辑服务器发送镜像构建指令;镜像构建逻辑服务器创建容器构建任务;容器服务器通过调用容器构建任务构建应用程序的容器,并获取应用程序更新的代码;容器服务器在容器中对应用程序更新的代码进行编译,得到应用程序的容器镜像,并将容器镜像上传至容器镜像服务器。本发明在检测到应用程序的代码更新时,可自动触发容器镜像构建流程,并在容器镜像构建完成后,自动将所构建的容器镜像上传至容器镜像服务器。由于整个过程无需用户干预,因而构建过程更佳智能。

Description

容器镜像的构建方法、系统、装置及存储介质
技术领域
本发明涉及互联网技术领域,特别涉及一种容器镜像的构建方法、系统、装置及存储介质。
背景技术
容器镜像是对应用程序的代码及其运行环境进行标准化封装,得到的一种特殊的文件系统,可直接运行在任何安装有容器的操作系统中。容器是对应用程序构建、分发、运行的统一平台,用于实现应用程序的自动化安装、部署及升级。由于容器镜像提供了容器运行时所需的各种资源,是容器得以运行的基础,因此,在基于容器技术对应用程序进行自动化部署之前,需要先构建出应用程序的容器镜像。
相关技术在构建容器镜像时,主要采用如下方法:接收用户发送的镜像构建指令,基于镜像构建指令获取应用程序的代码;创建容器构建任务,基于容器构建任务,构建应用程序的容器;在所构建的容器中对应用程序的代码等用于构建容器镜像的资源进行编译,得到应用程序的容器镜像;接收用户发送的镜像上传指令,基于镜像上传指令,将所构建的容器镜像上传至镜像服务器。
上述容器镜像的构建过程,由于需要用户干预,因而构建过程不智能。
发明内容
为了解决相关技术的问题,本发明实施例提供了一种容器镜像的构建方法、系统、装置及存储介质。所述技术方案如下:
一方面,提供了一种容器镜像的构建方法,所述方法应用于容器镜像构建系统,所述容器镜像构建系统包括代码仓库服务器、镜像构建逻辑服务器、容器服务器及容器镜像服务器,所述方法包括:
当检测到应用程序的代码更新时,所述代码仓库服务器向所述镜像构建逻辑服务器发送镜像构建指令,所述镜像构建指令包括第一授权证书和更新的应用程序的属性信息;
所述镜像构建逻辑服务器根据所述更新的应用程序的属性信息,创建容器构建任务,并获取第二授权证书;
所述容器服务器通过调用所述容器构建任务构建所述应用程序的容器,并根据所述第一授权证书,从所述代码仓库服务器中,获取所述应用程序更新的代码;
所述容器服务器在所述容器中对所述应用程序更新的代码进行编译,得到所述应用程序的容器镜像,并根据所述第二授权证书,将所述容器镜像上传至所述容器镜像服务器。
另一方面,提供了一种容器镜像的构建方法,所述方法包括:
当检测到应用程序的代码更新时,生成镜像构建指令,所述镜像构建指令包括第一授权证书和更新的应用程序的属性信息;
根据所述更新的应用程序的属性信息,创建容器构建任务,并获取第二授权证书;
根据所述容器构建任务,构建所述应用程序的容器,并根据所述第一授权证书,获取所述应用程序更新的代码;
在所述容器中对所述应用程序更新的代码进行编译,得到所述应用程序的容器镜像,并根据所述第二授权证书,将所述容器镜像上传至容器镜像服务器。
另一方面,提供了一种容器镜像构建系统,所述容器镜像构建系统包括代码仓库服务器、镜像构建逻辑服务器、容器服务器及容器镜像服务器,所述方法包括:
所述代码仓库服务器,用于当检测到应用程序的代码更新时,向所述镜像构建逻辑服务器发送镜像构建指令,所述镜像构建指令包括第一授权证书和更新的应用程序的属性信息;
所述镜像构建逻辑服务器,用于根据所述更新的应用程序的属性信息,创建容器构建任务,并获取第二授权证书;
所述容器服务器,用于通过调用所述容器构建任务构建所述应用程序的容器,并根据所述第一授权证书,从所述代码仓库服务器中,获取所述应用程序更新的代码;
所述容器服务器,用于在所述容器中对所述应用程序更新的代码进行编译,得到所述应用程序的容器镜像,并根据所述第二授权证书,将所述容器镜像上传至所述容器镜像服务器。
另一方面,提供了一种容器镜像的构建装置,所述装置包括:
指令生成模块,用于当检测到应用程序的代码更新时,生成镜像构建指令,所述镜像构建指令包括第一授权证书和更新的应用程序的属性信息;
任务创建模块,用于根据所述更新的应用程序的属性信息,创建容器构建任务;
证书获取模块,用于获取第二授权证书;
容器构建模块,用于根据所述容器构建任务,构建所述应用程序的容器;
代码获取模块,用于根据所述第一授权证书,获取所述应用程序更新的代码;
代码编译模块,用于在所述容器中对所述应用程序更新的代码进行编译,得到所述应用程序的容器镜像;
镜像上传模块,用于根据所述第二授权证书,将所述容器镜像上传至容器镜像服务器。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由处理器加载并执行以实现第一方面所述的容器镜像的构建方法,或者实现第二方面所述的容器镜像的构建方法。
本发明实施例提供的技术方案带来的有益效果是:
在检测到应用程序的代码更新时,可自动触发容器镜像构建流程,并在容器镜像构建完成后,自动将所构建的容器镜像上传至容器镜像服务器。由于整个过程无需用户干预,因而构建过程更佳智能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种容器镜像的构建方法所涉及的实施环境;
图2是本发明实施例提供的镜像构建逻辑服务器和容器服务器的部署架构图;
图3是本发明实施例提供另一种容器镜像的构建方法所涉及的实施环境;
图4是本发明实施例提供一种容器镜像的构建方法的流程图;
图5是本发明实施例提供的一种容器镜像的构建过程的示意图;
图6是本发明实施例提供的另一种容器镜像的构建方法的流程图;
图7是本发明实施例提供的一种容器镜像构建系统的结构示意图;
图8是本发明实施例提供的另一种容器镜像构建系统的结构示意图;
图9是本发明实施例提供的一种容器镜像的构建装置的结构示意图;
图10是本发明实施例提供的另一种容器镜像的构建装置的结构示意图;
图11是本发明实施例提供的另一种容器镜像的构建装置的结构示意图;
图12是本发明实施例提供的另一种容器镜像的构建装置的结构示意图;
图13是根据一示例性实施例示出的一种用于容器镜像的构建的服务器。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
容器和容器镜像的相关说明
Docker是一个开源的应用容器引擎,能够提供一种应用程序的自动化部署解决方案,通过在操作系统上创建一个容器(容器即轻量级虚拟机),并在容器中部署和运行应用程序的容器镜像,可以实现应用程序的自动化安装、部署和升级。Docker可虚拟出至少两个容器,由于每个容器之间彼此独立、没有任何接口,因而可将彼此的开发环境和运行环境分开。容器技术的出现,实现了对传统应用程序,特别是基于网络的浏览器/服务器的应用程序的灵活部署和管理,同时也实现了资源的隔离和限制,满足了应用程序的快速部署及多样化的需求。
容器镜像作为一个特殊的文件系统,除了提供容器运行时所需的应用程序的代码、数据库及配置参数等文件外,还提供一些为运行时准备的配置参数,如匿名卷、环境变量、用户等。
容器镜像是静态资源,其不包含任何动态数据,且其内容在构建之后就不会被改变,容器镜像一般存储在磁盘或者镜像服务器中。容器是动态资源,实际上是根据容器镜像创建而出的应用程序。
现有的容器镜像的构建方法,一方面需要用户手动触发生成镜像构建指令和镜像上传指令,对用户而言,需要掌握一定的专业技能,学习成本较高,构建难度较大,对于容器镜像的构建装置而言,整个构建过程需要用户的触发,构建过程不智能;另一方面容器镜像的构建一般会依赖于外部资源,例如,从github上拉取应用程序的代码、从包安装服务器上下载安装包等,而用户的虚拟机大多没有外网IP(Internet Protocol,网络互连协议),无法访问外部网络,即便用户的虚拟机具有外网IP,能够访问外部网络,但当本地与外部资源间距离较远时,访问外部资源的速度也会很慢,导致容器镜像的构建时间较长,甚至构建失败。
为了解决现有技术中存在问题,本发明实施例提供了一种容器镜像的构建方法,该方法在检测到应用程序的代码更新时,自动触发容器镜像的构建任务,在容器镜像的构建过程中,当需要外部网络资源,可通过分布在各地的容器服务器快速获取到外部资源,从而确保构建过程顺利进行。在容器镜像构建完成时,又可自动地将所构建的容器镜像上传至容器镜像服务器。
本发明实施例提供的容器镜像的构建方法的实施环境
一种实施环境,图1是本发明实施例提供的容器镜像的构建方法所涉及的实施环境,参见图1,该实施环境包括终端101、代码仓库服务器102、镜像构建逻辑服务器103、索引服务器104、容器服务器105及容器镜像服务器106。
其中,终端101为用户编译应用程序的代码时所使用的设备,该终端101可以为笔记本电脑、台式电脑、平板电脑等,本发明实施例不对终端101的产品类型作具体的限定。
代码仓库服务器102具有至少一个代码仓库,该代码仓库主要用于存储终端101所发送的应用程序的代码、以及用户预设的构建规则等,该构建规则指示了容器镜像构建时的代码仓库、镜像名称等。在本发明实施例中,代码仓库服务器102可以用Git Server表示。
镜像构建逻辑服务器103主要用于对镜像构建指令进行解析、进行构建任务的分发、查询镜像构建日志等等。在本发明实施例中,镜像构建逻辑服务器103可以用CI-Server表示。
索引服务器104主要用于存储应用程序的属性信息与第二授权证书的之间的对应关系等。在本发明实施例中,索引服务器104可以用Index表示。
容器服务器105为一个服务器集群,其所包括的服务器分布在各地,容器服务器105主要用于处理执行容器构建任务,每个容器构建任务被作为一个容器来执行。在本发明实施例中,容器服务器105可以用Kubernetes集群表示。
容器镜像服务器106主要用于存储所构建的容器镜像。在本发明实施例中,容器镜像服务器106可以用Qcloud Registry表示。
对于镜像构建逻辑服务器和容器服务器的具体部署,下面结合图2进行具体说明。
参见图2,镜像构建逻辑服务器103与容器镜像服务器106具有相同的运营环境,均为内网运行环境。Kubernetes集群(容器服务器105)的运行环境为私有云运行环境,Kubernetes集群的访问入口设置有内网虚拟IP,面向镜像构建逻辑服务器103可模拟内网运行坏境,从而能够与镜像构建逻辑服务器103进行通信;Kubernetes集群还设置有虚拟私有云公网网关(VPC(Virtual Private Cloud,虚拟私有云)公网GW(GateWay,网关)),可以获取Java、nodejs等外网镜像服务以及Yum、apt-get等外网软件包服务。
镜像构建逻辑服务器和容器服务器的部署说明
第一,将镜像构建逻辑服务器与容器服务器分离部署。
由于镜像构建逻辑服务器只需要执行镜像构建指令的解析、镜像构建任务的分发操作等,这些操作占用的CPU(Central Processing Unit,中央处理器)、内存、IO(Input/Output,输入输出)等资源极小,因此,可以使用镜像构建逻辑服务器进行独立部署,而镜像构建任务会占用大量的CPU、内存和IO等资源,需要以集群的方式进行分布式部署。优选地,为了防止镜像构建任务影响到构建逻辑,可将镜像构建逻辑服务器和容器服务器分开部署。
第二,采用kubernetes容器集群作为容器服务器执行镜像构建任务。
考虑到kubernetes为一种稳定、开源的容器集群,可根据CPU、内存等资源,将镜像构建任务调度到集群内合适的服务器上运行,使得整个集群内的资源得到充分运,因此,本发明实施例可采用kubernetes容器集群作为容器服务器执行镜像构建任务。
第三,将容器服务器(Kubernetes集群)的网络与镜像构建逻辑服务器(CI-Server)的网络隔离。
通过将容器服务器(Kubernetes集群)的网络与镜像构建逻辑服务器(CI-Server)的网络隔离,可以有效防止容器镜像构建过程中恶意的、攻击性的指令运行,以保障整个运营环境的安全。
第四,在容器服务器(kubernetes集群)的访问入口设置内网Virtual IP。
通过在容器服务器(kubernetes集群)的访问入口设置内网Virtual IP,使得运营环境中的镜像构建逻辑服务器(CI-Server)可以和外网的Kubernetes集群进行通信,不仅保证了CI-Server能够被Kubernetes集群调度,而且CI-Server通过访问Kubernetes集群的镜像构建任务接口,可获取容器镜像构建过程中的镜像日志。
另一种实施环境,图3是本发明实施例提供的容器镜像的构建方法所涉及的实施环境,参见图3,该实施环境包括:终端301、容器镜像构建服务器302及容器镜像服务器303。
其中,终端301与图1中的终端101的产品类型及功能相同,此处不再赘述。容器镜像构建服务器302具有图1中代码仓库服务器102、镜像构建逻辑服务器103、索引服务器104、容器服务器105的全部功能,具体参见图1中对代码仓库服务器102、镜像构建逻辑服务器103、索引服务器104、容器服务器105的描述,此处也不再赘述。容器镜像服务器303具有图1中的容器镜像服务器106的全部功能,具体参见图1中对容器镜像服务器106的描述,此处不再赘述。
基于图1所示的实施环境,本发明实施例提供了一种容器镜像的构建方法,该方法应用于容器镜像构建系统,该容器镜像构建系统包括代码仓库服务器、镜像构建逻辑服务器、容器服务器及容器镜像服务器,参见图4,本发明实施例提供的容器镜像的构建方法流程包括:
401、当检测到应用程序的代码更新时,代码仓库服务器向镜像构建逻辑服务器发送镜像构建指令。
在本发明实施例中,应用程序的代码更新的场景,包括但不限于如下两种:
一种场景、对于已发布的应用程序,如果该应用程序在实际使用过程中存在一些缺陷,影响该应用程序的性能,应用程序的开发人员可通过对该应用程序的源代码进行修改,克服该应用程序在运行过程中存在的问题,从而提升该应用程序的性能。当应用程序的开发人员对应用程序的源代码修改完成后,该应用程序的开发人员可通过终端将所修改的应用程序的代码上传至代码仓库服务器。
另一种场景、为了满足用户的使用需求,应用程序的开发人员可开发出具有新功能的应用程序,进而通过终端将所开发的应用程序的代码上传至代码仓库服务器。
本发明实施例中的代码仓库服务器具有代码检测功能,可实时扫描所存储的应用程序的代码。对于已存储的任一应用程序,当检测到该应用程序的代码被修改时,可确定应用程序的代码更新;对于未存储的应用程序,当检测到新的应用程序的代码时,可确定应用程序的代码更新。
需要说明的是,由于应用程序的数量及种类均较多,每种应用程序均具有代码,这样代码仓库服务器中就需要存储多种应用程序的代码,为了便于对所存储的应用程序的代码进行管理,代码仓库服务器包括至少一个代码仓库,每个代码仓库具有唯一的地址,可用于存储一种应用程序的代码。代码仓库服务器通过检测用户的设置操作,可建立代码仓库的地址与每种应用程序之间的对应关系。基于该对应关系,当接收到终端上传的应用程序的代码时,代码仓库服务器可将应用程序的代码存储到相应的代码仓库中。
为了实现容器镜像的自动构建,在本发明实施例中,代码仓库服务器还将存储用户预先设置的构建规则,该构建规则指示了代码仓库的地址、容器镜像名称及镜像构建逻辑服务器等之间的对应关系。基于所存储的构建规则,当检测到应用程序的代码更新时,代码仓库服务器可构造钩子函数,该钩子函数用于触发代码仓库服务器向镜像构建逻辑服务器发送镜像构建指令。其中,镜像构建指令包括第一授权证书和更新的应用程序的属性信息。具体地,第一授权证书用于对容器服务器进行授权,以使容器服务器在自动构建容器镜像的过程中能够读取代码仓库服务器中所存储的应用程序的代码,该第一授权证书可以为一个token。更新的应用程序的属性信息包括应用程序的名称、代码仓库的地址、构建容器镜像时所需的外部资源地址等等。
402、镜像构建逻辑服务器根据更新的应用程序的属性信息,创建容器构建任务,并获取第二授权证书。
当接收到镜像构建指令时,镜像构建逻辑服务器根据约定的通信协议,对镜像构建指令进行解析,得到第一授权证书、更新的应用程序的属性信息等。基于所得到的更新的应用程序的属性信息,镜像构建逻辑服务器创建容器构建任务,该容器构建任务指示了代码仓库的地址、运行环境、所需的外部资源的资源地址、配置参数等等。
本发明实施例中,容器镜像构建系统还包括索引服务器,该索引服务器中存储有应用程序的属性信息与第二授权证书之间的对应关系。基于所存储的应用程序的属性信息与第二授权证书之间的对应关系,当镜像构建逻辑服务器对镜像构建指令进行解析,得到更新的应用程序的属性信息后,镜像构建逻辑服务器可从索引服务器中,获取更新的应用程序的属性信息对应的第二授权证书,该第二授权证书用于对容器服务器进行授权,以使容器服务器能够登录容器镜像服务器,并将所构建的容器镜像上传至容器镜像服务器,该第二授权证书可以为一个token。
403、容器服务器通过调用容器构建任务构建应用程序的容器,并根据第一授权证书,从代码仓库服务器中,获取应用程序更新的代码。
在本发明实施例中,容器服务器能够调用镜像构建逻辑服务器所创建容器构建任务,通过调用容器构建任务,容器服务器可构建应用程序的容器,该容器为容器镜像的生产环境。接着,容器服务器根据第一授权证书,获取对代码仓库服务器的访问权限,进而根据代码仓库的地址,从代码仓库服务器中,获取应用程序更新的代码。
404、容器服务器在容器中对应用程序更新的代码进行编译,得到应用程序的容器镜像,并根据第二授权证书,将容器镜像上传至容器镜像服务器。
在本发明的一个实施例中,如果应用程序的容器镜像的构建资源仅包括内网资源,例如应用程序更新的代码,不包括外部资源,则容器服务器可直接在容器中对应用程序更新的代码进行编译,从而得到应用程序的容器镜像。
在本发明的另一个实施例中,如果应用程序的容器镜像的构建资源不仅包括内网资源,例如应用程序更新的代码,而且还包括外部资源,则容器服务器可根据容器构建任务所指示的外部资源的外部资源地址,获取对应的外部资源,进而在容器中对应用程序更新的代码和外部资源进行编译,从而得到镜像容器。由于容器服务器所包括的多个服务器之间通过专网相连,因而可快速获取到所需的外部资源,不仅可保证容器镜像能够成功构建,而且大大缩短了构建时间,提高了构建效率。
为了提升镜像构建逻辑服务器及容器服务器的性能,避免已结束的任务占用CPU、内存等资源,当检测到容器镜像构建完成时,镜像构建逻辑服务器可将容器构建任务删除,同时向容器服务器发送容器删除指令,当接收到容器服务器接收到删除指令时,容器服务器删除所创建的容器,进而将该容器所占用的资源释放。
在本发明实施例中,容器服务器在构建容器镜像的过程中,还将缓存镜像构建日志。基于容器服务器中所存储的镜像构建日志,镜像构建逻辑服务器可每隔预设周期获取容器服务器中所缓存的镜像构建日志,并将镜像构建日志保存在数据库中,以供应用程序的开发人员追溯容器镜像的构建过程。其中,预设周期根据镜像构建服务器的处理能力确定,可以为1小时、2小时等。开发人员对容器镜像的构建过程进行追溯包括获知容器镜像在不同时间内的构建进度、容器镜像在构建过程中内存的占用量、所调用的函数等等。
图5示出采用本发明实施例提供的方法构建容器镜像的构建过程。
1、应用程序的开发人员通过终端向代码仓库服务器发送应用程序更新的代码。
2、当检测到应用程序的代码更新时,代码仓库服务器配置钩子函数,以触发生成镜像构建指令,进而向镜像构建逻辑服务器发送该镜像构建指令。
3、当接收到镜像构建指令时,镜像构建逻辑服务器对该镜像构建指令进行解析,得到第一授权证书和更新的应用程序的属性信息。
4、基于该更新的应用程序的属性信息,镜像构建逻辑服务器创建容器构建任务,并从索引服务器上获取对应第二授权证书。
5、容器服务器(Kubernetes集群)通过调用容器构建任务,创建应用程序的容器。
6、容器服务器根据第一授权证书,获取对仓库服务器的访问权限,进而从仓库服务器上获取应用程序更新的代码。
7、容器服务器在容器中对应用程序更新的代码进行编译,得到容器镜像。
8、基于第二授权证书,容器服务器将所构建的容器镜像上传至容器镜像服务器。
本发明实施例提供的方法,在检测到应用程序的代码更新时,可自动触发容器镜像构建流程,并在容器镜像构建完成后,自动将所构建的容器镜像上传至容器镜像服务器。由于整个过程无需用户干预,因而构建过程更佳智能。另外,本发明实施例提供的容器服务器通过与外部网络进行通信,可获取到外网资源,不仅确保了容器镜像的构建成功率,而且提高了对容器镜像的构建效率。
基于图3所示的实施环境,本发明实施例提供了一种容器镜像的构建方法,以容器镜像构建服务器执行本发明实施例为例,参见图6,本发明实施例提供的容器镜像的构建方法流程包括:
601、当检测到应用程序的代码更新时,容器镜像构建服务器生成镜像构建指令。
在本发明实施例中,应用程序的代码更新的场景,包括但不限于如下两种:
一种场景、对于已发布的应用程序,如果该应用程序在实际使用过程中存在一些缺陷,影响该应用程序的性能,应用程序的开发人员可通过对该应用程序的源代码进行修改,克服该应用程序在运行过程中存在的问题,从而提升该应用程序的性能。当应用程序的开发人员对应用程序的源代码修改完成后,该应用程序的开发人员可通过终端将所修改的应用程序的代码上传至容器镜像构建服务器。
另一种场景、为了满足用户的使用需求,应用程序的开发人员可开发出具有新功能的应用程序,进而通过终端将所开发的应用程序的代码上传至容器镜像构建服务器。
本发明实施例中的容器镜像构建服务器具有代码检测功能,可实时扫描所存储的应用程序的代码。对于已存储的任一应用程序,当检测到该应用程序的代码被修改时,可确定应用程序的代码更新;对于未存储的应用程序,当检测到新的应用程序的代码时,可确定应用程序的代码更新。
需要说明的是,由于应用程序的数量及种类均较多,每种应用程序均具有代码,这样容器镜像构建服务器中就需要存储多种应用程序的代码,为了便于对所存储的应用程序的代码进行管理,容器镜像构建服务器包括至少一个代码仓库,每个代码仓库具有唯一的地址,可用于存储一种应用程序的代码。容器镜像构建服务器通过检测用户的设置操作,可建立代码仓库的地址与每种应用程序之间的对应关系。基于该对应关系,当接收到终端上传的应用程序的代码时,容器镜像构建服务器可将应用程序的代码存储到相应的代码仓库中。
为了实现容器镜像的自动构建,在本发明实施例中,容器镜像构建服务器还将存储用户预先设置的构建规则,该构建规则指示了代码仓库的地址、容器镜像名称及镜像构建逻辑服务器等之间的对应关系。基于所存储的构建规则,当检测到应用程序的代码更新时,容器镜像构建服务器可构造钩子函数,该钩子函数用于触发生成镜像构建指令。其中,镜像构建指令包括第一授权证书和更新的应用程序的属性信息。具体地,第一授权证书用于进行访问授权,以在自动构建容器镜像的过程中能够读取所存储的应用程序的代码,该第一授权证书可以为一个token。更新的应用程序的属性信息包括应用程序的名称、代码仓库的地址、构建容器镜像时所需的外部资源地址等等。
602、容器镜像构建服务器根据更新的应用程序的属性信息,创建容器构建任务,并获取第二授权证书。
当接收到镜像构建指令时,容器镜像构建服务器根据约定的通信协议,对镜像构建指令进行解析,得到第一授权证书、更新的应用程序的属性信息等。基于所得到的更新的应用程序的属性信息,容器镜像构建服务器创建容器构建任务,该容器构建任务指示了代码仓库的地址、运行环境、所需的外部资源的资源地址、配置参数等等。
本发明实施例中,容器镜像构建服务器中存储有应用程序的属性信息与第二授权证书之间的对应关系。基于所存储的应用程序的属性信息与第二授权证书之间的对应关系,容器镜像构建服务器可获取更新的应用程序的属性信息对应的第二授权证书,该第二授权证书用于进行访问授权,以使容器镜像构建服务器能够登录容器镜像服务器,并将所构建的容器镜像上传至容器镜像服务器,该第二授权证书可以为一个token。
603、容器镜像构建服务器根据容器构建任务,构建应用程序的容器,并根据第一授权证书,获取应用程序更新的代码。
在本发明实施例中,容器镜像构建服务器可根据容器构建任务,构建应用程序的容器,该容器为容器镜像的生产环境。接着,容器镜像构建服务器根据第一授权证书,从代码仓库中获取应用程序更新的代码。
604、容器镜像构建服务器在容器中对应用程序更新的代码进行编译,得到应用程序的容器镜像,并根据第二授权证书,将容器镜像上传至容器镜像服务器。
在本发明的一个实施例中,如果应用程序的容器镜像的构建资源仅包括内网资源,例如应用程序更新的代码,不包括外部资源,则容器镜像构建服务器可直接在容器中对应用程序更新的代码进行编译,从而得到应用程序的容器镜像。
在本发明的另一个实施例中,如果应用程序的容器镜像的构建资源不仅包括内网资源,例如应用程序更新的代码,而且还包括外部资源,则容器镜像构建服务器可根据容器构建任务所指示的外部资源的外部资源地址,获取对应的外部资源,进而在容器中对应用程序更新的代码和外部资源进行编译,从而得到镜像容器。由于容器镜像构建服务器所包括的用于构建容器镜像的多个服务器之间通过专网相连,因而可快速获取到所需的外部资源,不仅可保证容器镜像能够成功构建,而且大大缩短了构建时间,提高了构建效率。
为了提升容器镜像构建服务器的性能,避免已结束的任务占用CPU、内存等资源,当检测到容器镜像构建完成时,容器镜像构建服务器可将容器构建任务删除,并将所创建的容器删除,进而将该容器所占用的资源释放。
在本发明实施例中,容器镜像构建服务器在构建容器镜像的过程中,还将缓存镜像构建日志,该镜像构建日志可供应用程序的开发人员追溯容器镜像的构建过程。开发人员对容器镜像的构建过程进行追溯包括获知容器镜像在不同时间内的构建进度、容器镜像在构建过程中内存的占用量、所调用的函数等等。
本发明实施例提供的方法,在检测到应用程序的代码更新时,可自动触发容器镜像构建流程,并在容器镜像构建完成后,自动将所构建的容器镜像上传至容器镜像服务器。由于整个过程无需用户干预,因而构建过程更佳智能。另外,本发明实施例提供的容器服务器通过与外部网络进行通信,可获取到外网资源,不仅确保了容器镜像的构建成功率,而且提高了对容器镜像的构建效率。
参见图7,本发明实施例提供了一种容器镜像构建系统,该容器镜像构建系统包括代码仓库服务器701、镜像构建逻辑服务器702、容器服务器703及容器镜像服务器704。
代码仓库服务器701,用于当检测到应用程序的代码更新时,向镜像构建逻辑服务器702发送镜像构建指令,该镜像构建指令包括第一授权证书和更新的应用程序的属性信息;
镜像构建逻辑服务器702,用于根据更新的应用程序的属性信息,创建容器构建任务,并获取第二授权证书;
容器服务器703,用于通过调用容器构建任务构建应用程序的容器,并根据第一授权证书,从代码仓库服务器701中,获取应用程序更新的代码;
容器服务器703,用于在容器中对应用程序更新的代码进行编译,得到应用程序的容器镜像,并根据第二授权证书,将容器镜像上传至容器镜像服务器704。
在本发明的另一个实施例中,代码仓库服务器701,用于当检测到应用程序的代码更新时,构造钩子函数,该钩子函数用于触发代码仓库服务器701向镜像构建逻辑服务器702发送镜像构建指令。
在本发明的另一个实施例中,参见图8,容器镜像构建系统还包括索引服务器705;
镜像构建逻辑服务器702,还用于从索引服务器705中,获取更新的应用程序的属性信息对应的第二授权证书,该索引服务器705中存储有应用程序的属性信息与第二授权证书之间的对应关系。
在本发明的另一个实施例中,镜像构建逻辑服务器702,还用于获取容器服务器703中所缓存的镜像构建日志,该镜像构建日志用于镜像构建逻辑服务器702追溯容器镜像的构建过程。
在本发明的另一个实施例中,镜像构建逻辑服务器,还用于当检测到容器镜像构建完成时,删除容器构建任务,并向容器服务器703发送容器删除指令,该容器删除指令用于容器服务器703删除容器。
在本发明的另一个实施例中,容器构建任务指示用于构建容器镜像的外部资源的外部资源地址;
容器服务器703,还用于根据外部资源地址,获取对应的外部资源;
容器服务器703,还用于在容器中对应用程序更新的代码和外部资源进行编译,得到镜像容器。
需要说明的是,本发明实施例中的代码仓库服务器701与图1中的代码仓库服务器102相同,具有图1中的代码仓库服务器102的全部功能;本发明实施例中的镜像构建逻辑服务器702与图1中的镜像构建逻辑服务器103相同,具有图1中的镜像构建逻辑服务器103的全部功能;本发明实施例中的容器服务器703与图1中的容器服务器105相同,具有图1中的容器服务器105的全部功能;本发明实施例中的容器镜像服务器704与图1中的容器镜像服务器106相同,具有图1中的容器镜像服务器106的全部功能。
综上所述,本发明实施例提供的系统,在检测到应用程序的代码更新时,可自动触发容器镜像构建流程,并在容器镜像构建完成后,自动将所构建的容器镜像上传至容器镜像服务器。由于整个过程无需用户干预,因而构建过程更佳智能。
参见图9,本发明实施例提供了一种容器镜像的构建装置,该装置具有图3中容器镜像构建服务器302的全部功能,该装置包括:
指令生成模块901,用于当检测到应用程序的代码更新时,生成镜像构建指令,该镜像构建指令包括第一授权证书和更新的应用程序的属性信息;
任务创建模块902,用于根据更新的应用程序的属性信息,创建容器构建任务;
证书获取模块903,用于获取第二授权证书;
容器构建模块904,用于根据容器构建任务,构建应用程序的容器;
代码获取模块905,用于根据第一授权证书,获取应用程序更新的代码;
代码编译模块906,用于在容器中对应用程序更新的代码进行编译,得到应用程序的容器镜像;
镜像上传模块907,用于根据第二授权证书,将容器镜像上传至容器镜像服务器。
在本发明的另一个实施例中,参见图10,该装置还包括:
函数构造模块908,用于当检测到应用程序的代码更新时,构造钩子函数,该钩子函数用于触发生成镜像构建指令。
在本发明的另一个实施例中,证书获取模块903,用于从索引数据库中,获取更新的应用程序的属性信息对应的第二授权证书,该索引数据库中存储有应用程序的属性信息与第二授权证书之间的对应关系。
在本发明的另一个实施例中,参见图11,该装置还包括:
日志缓存模块909,用于缓存镜像构建日志,镜像构建日志用于追溯容器镜像的构建过程。
在本发明的另一个实施例中,参见图12,该装置还包括:
删除模块910,用于当检测到容器镜像构建完成时,删除容器构建任务,并删除容器。
在本发明的另一个实施例中,容器构建任务指示用于构建容器镜像的外部资源的外部资源地址;
代码获取模块905,还用于根据外部资源地址,获取对应的外部资源;
代码编译模块906,还用于在容器中对应用程序更新的代码和外部资源进行编译,得到镜像容器。
本发明实施例提供的装置,在检测到应用程序的代码更新时,可自动触发容器镜像构建流程,并在容器镜像构建完成后,自动将所构建的容器镜像上传至容器镜像服务器。由于整个过程无需用户干预,因而构建过程更佳智能。
图13是根据一示例性实施例示出的一种用于容器镜像的构建的服务器。参照图13,服务器1300包括处理组件1322,其进一步包括一个或多个处理器,以及由存储器1332所代表的存储器资源,用于存储可由处理组件1322的执行的指令,例如应用程序。存储器1332中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1322被配置为执行指令,以执行上述图4或图6所示的容器镜像的构建方法中服务器所执行的功能。
服务器1300还可以包括一个电源组件1326被配置为执行服务器1300的电源管理,一个有线或无线网络接口1350被配置为将服务器1300连接到网络,和一个输入输出(I/O)接口1358。服务器1300可以操作基于存储在存储器1332的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本发明实施例提供的服务器,在检测到应用程序的代码更新时,可自动触发容器镜像构建流程,并在容器镜像构建完成后,自动将所构建的容器镜像上传至容器镜像服务器。由于整个过程无需用户干预,因而构建过程更佳智能。
本发明实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由处理器加载并执行以实现图4所示的容器镜像的构建方法,或者实现图6所示的容器镜像的构建方法。
本发明实施例提供的计算机可读存储介质,在检测到应用程序的代码更新时,可自动触发容器镜像构建流程,并在容器镜像构建完成后,自动将所构建的容器镜像上传至容器镜像服务器。由于整个过程无需用户干预,因而构建过程更佳智能。
需要说明的是:上述实施例提供的容器镜像构建系统、容器镜像的构建装置在构建容器镜像时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将容器镜像构建系统、容器镜像的构建装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的容器镜像构建系统、容器镜像的构建装置及容器镜像的构建方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种容器镜像的构建方法,其特征在于,所述方法由容器镜像构建系统执行,所述容器镜像构建系统包括代码仓库服务器、镜像构建逻辑服务器、容器服务器及容器镜像服务器,其中所述容器服务器与所述镜像构建逻辑服务器分离部署,所述容器服务器的网络与所述镜像构建逻辑服务器的网络隔离,并且所述镜像构建逻辑服务器的运行环境为内网运行环境,所述容器服务器的访问入口设置有内网虚拟IP,使得所述容器服务器能够与所述镜像构建逻辑服务器进行通信;所述方法包括:
当检测到应用程序的代码更新时,所述代码仓库服务器向所述镜像构建逻辑服务器发送镜像构建指令,所述镜像构建指令包括第一授权证书和更新的应用程序的属性信息;
所述镜像构建逻辑服务器根据所述更新的应用程序的属性信息,创建容器构建任务,并获取第二授权证书;
所述容器服务器通过调用所述容器构建任务构建所述应用程序的容器,并根据所述第一授权证书,从所述代码仓库服务器中,获取所述应用程序更新的代码;
所述容器服务器在所述容器中对所述应用程序更新的代码进行编译,得到所述应用程序的容器镜像,并根据所述第二授权证书,将所述容器镜像上传至所述容器镜像服务器,
其中,当检测到应用程序的代码更新时,所述代码仓库服务器构造钩子函数,所述钩子函数用于触发所述代码仓库服务器向所述镜像构建逻辑服务器发送所述镜像构建指令;
所述容器镜像构建系统还包括索引服务器,所述镜像构建逻辑服务器获取第二授权证书,包括:
所述镜像构建逻辑服务器从所述索引服务器中,获取所述更新的应用程序的属性信息对应的第二授权证书,所述索引服务器中存储有应用程序的属性信息与第二授权证书之间的对应关系。
2.根据权利要求1所述的容器镜像的构建方法,其特征在于,所述方法还包括:
所述镜像构建逻辑服务器获取所述容器服务器中所缓存的镜像构建日志,所述镜像构建日志用于所述镜像构建逻辑服务器追溯所述容器镜像的构建过程。
3.根据权利要求1所述的容器镜像的构建方法,其特征在于,所述方法还包括:
当检测到所述容器镜像构建完成时,所述镜像构建逻辑服务器删除所述容器构建任务,并向所述容器服务器发送容器删除指令,所述容器删除指令用于所述容器服务器删除所述容器。
4.根据权利要求1至3中任一项所述的容器镜像的构建方法,其特征在于,所述容器构建任务指示用于构建所述容器镜像的外部资源的外部资源地址,所述方法还包括:
所述容器服务器根据所述外部资源地址,获取对应的外部资源;
所述容器服务器在所述容器中对所述应用程序更新的代码和所述外部资源进行编译,得到所述镜像容器。
5.一种容器镜像构建系统,其特征在于,所述容器镜像构建系统包括代码仓库服务器、镜像构建逻辑服务器、容器服务器及容器镜像服务器,其中:
所述代码仓库服务器,用于当检测到应用程序的代码更新时,向所述镜像构建逻辑服务器发送镜像构建指令,所述镜像构建指令包括第一授权证书和更新的应用程序的属性信息;
所述镜像构建逻辑服务器,用于根据所述更新的应用程序的属性信息,创建容器构建任务,并获取第二授权证书;
所述容器服务器,用于通过调用所述容器构建任务构建所述应用程序的容器,并根据所述第一授权证书,从所述代码仓库服务器中,获取所述应用程序更新的代码;
所述容器服务器,用于在所述容器中对所述应用程序更新的代码进行编译,得到所述应用程序的容器镜像,并根据所述第二授权证书,将所述容器镜像上传至所述容器镜像服务器,
其中,所述代码仓库服务器还用于当检测到应用程序的代码更新时,所述代码仓库服务器构造钩子函数,所述钩子函数用于触发所述代码仓库服务器向所述镜像构建逻辑服务器发送所述镜像构建指令;
所述容器镜像构建系统还包括索引服务器,所述索引服务器中存储有应用程序的属性信息与第二授权证书之间的对应关系;所述镜像构建逻辑服务器还用于从所述索引服务器中,获取所述更新的应用程序的属性信息对应的第二授权证书;
其中所述容器服务器与所述镜像构建逻辑服务器分离部署,所述容器服务器的网络与所述镜像构建逻辑服务器的网络隔离,并且所述镜像构建逻辑服务器的运行环境为内网运行环境,所述容器服务器的访问入口设置有内网虚拟IP,使得所述容器服务器能够与所述镜像构建逻辑服务器进行通信。
6.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由处理器加载并执行以实现如权利要求1至4中任一项所述的容器镜像的构建方法。
CN201711132025.7A 2017-11-15 2017-11-15 容器镜像的构建方法、系统、装置及存储介质 Active CN107766126B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201711132025.7A CN107766126B (zh) 2017-11-15 2017-11-15 容器镜像的构建方法、系统、装置及存储介质
PCT/CN2018/111273 WO2019095936A1 (zh) 2017-11-15 2018-10-22 容器镜像的构建方法、系统、服务器、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711132025.7A CN107766126B (zh) 2017-11-15 2017-11-15 容器镜像的构建方法、系统、装置及存储介质

Publications (2)

Publication Number Publication Date
CN107766126A CN107766126A (zh) 2018-03-06
CN107766126B true CN107766126B (zh) 2023-01-13

Family

ID=61279268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711132025.7A Active CN107766126B (zh) 2017-11-15 2017-11-15 容器镜像的构建方法、系统、装置及存储介质

Country Status (2)

Country Link
CN (1) CN107766126B (zh)
WO (1) WO2019095936A1 (zh)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107766126B (zh) * 2017-11-15 2023-01-13 腾讯科技(深圳)有限公司 容器镜像的构建方法、系统、装置及存储介质
CN108628664A (zh) * 2018-05-11 2018-10-09 北京辰森世纪科技股份有限公司 一种容器处理的方法及装置
CN108664290B (zh) * 2018-05-17 2024-02-02 中国平安人寿保险股份有限公司 一种应用程序配置方法、装置、电子设备及存储介质
CN108920250B (zh) * 2018-06-05 2021-11-19 麒麟合盛网络技术股份有限公司 应用程序容器化的方法及装置
CN108920136B (zh) * 2018-06-29 2021-10-15 郑州云海信息技术有限公司 一种基于容器的操作系统创建方法、系统及相关装置
CN109614202A (zh) * 2018-12-04 2019-04-12 北京京东尚科信息技术有限公司 容器环境的备份、恢复以及镜像处理方法和系统
CN109783191B (zh) * 2018-12-18 2020-09-08 全球能源互联网研究院有限公司 容器镜像的管理、使用及构建方法、装置
CN111338632A (zh) * 2018-12-19 2020-06-26 中国移动通信集团湖南有限公司 一种云平台镜像构建方法和装置
CN109814879B (zh) * 2019-01-16 2022-09-06 福建省天奕网络科技有限公司 自动化ci/cd项目部署方法、存储介质
CN109815704B (zh) * 2019-01-24 2020-08-04 中国—东盟信息港股份有限公司 一种Kubernetes云原生应用的安全检测方法及其系统
US11128617B2 (en) * 2019-01-31 2021-09-21 Baidu Usa Llc Token based secure multiparty computing framework using a restricted operating environment
CN110262829A (zh) * 2019-05-17 2019-09-20 平安科技(深圳)有限公司 私有镜像生成方法、装置、计算机设备及存储介质
CN110262941B (zh) * 2019-05-28 2023-06-16 深圳市汇川技术股份有限公司 应用程序容器集群报警实现方法、系统、设备及存储介质
CN112148419B (zh) * 2019-06-28 2024-01-02 杭州海康威视数字技术股份有限公司 云平台中镜像管理方法、装置、系统及存储介质
CN112306843A (zh) * 2019-07-29 2021-02-02 北京中关村科金技术有限公司 一种测试方法、装置以及存储介质
CN110413294B (zh) * 2019-08-06 2023-09-12 中国工商银行股份有限公司 服务发布系统、方法、装置和设备
CN110531984B (zh) * 2019-08-08 2023-06-23 金蝶软件(中国)有限公司 代码编译方法、装置、系统、计算机设备和存储介质
CN110825399B (zh) * 2019-11-07 2024-02-20 郑州悉知信息科技股份有限公司 一种应用程序的部署方法及装置
CN111176782B (zh) * 2019-11-08 2023-11-03 腾讯云计算(北京)有限责任公司 一种在线实验方法和装置
CN111090437B (zh) * 2019-11-19 2024-03-12 平安科技(深圳)有限公司 应用部署方法、装置及计算机可读存储介质
CN111008016A (zh) * 2019-11-29 2020-04-14 宝付网络科技(上海)有限公司 一种基于docker容器多环境编译系统及方法
CN111240910B (zh) * 2020-01-02 2024-04-05 北京航天测控技术有限公司 设备健康管理微服务生成方法、装置、设备及可读介质
CN113110913B (zh) * 2020-01-13 2024-01-05 中国移动通信集团浙江有限公司 镜像管理系统、方法及计算设备
CN111399897A (zh) * 2020-02-21 2020-07-10 北京值得买科技股份有限公司 基于kubernetes的应用发布方法以及系统
CN111399855B (zh) * 2020-03-09 2023-10-20 山东省电子口岸有限公司 一种基于容器技术的自动化应用实例发布方法
CN111427664B (zh) * 2020-03-25 2024-04-12 杭州电子科技大学 基于容器的协议解析方法、装置、系统以及存储介质
CN111459509A (zh) * 2020-03-27 2020-07-28 北京金山云网络技术有限公司 容器镜像的构建方法、装置和服务器
CN111399865A (zh) * 2020-04-21 2020-07-10 贵州新致普惠信息技术有限公司 一种基于容器技术自动构建目标文件的方法
CN111522627B (zh) * 2020-04-26 2023-11-28 杭州威佩网络科技有限公司 一种Docker镜像管理方法、装置、设备及介质
CN111679890A (zh) * 2020-06-10 2020-09-18 北京金山云网络技术有限公司 服务镜像的生成方法、装置及电子设备
CN111857797B (zh) * 2020-06-29 2022-04-22 浪潮电子信息产业股份有限公司 一种镜像构建方法、系统及相关装置
CN111966463A (zh) * 2020-08-18 2020-11-20 江苏安超云软件有限公司 一种容器镜像的构建方法、装置、存储介质及电子设备
CN112035124A (zh) * 2020-09-03 2020-12-04 中国银行股份有限公司 应用程序部署方法及装置
CN112099917B (zh) * 2020-09-08 2022-02-11 中国电力科学研究院有限公司 调控系统容器化应用运行管理方法、系统、设备及介质
CN112181721B (zh) * 2020-09-14 2024-03-19 东云睿连(武汉)计算技术有限公司 一种人工智能作业镜像管理方法和系统
CN112148494B (zh) * 2020-09-30 2023-07-25 北京百度网讯科技有限公司 用于算子服务的处理方法、装置、智能工作站和电子设备
CN112181606A (zh) * 2020-11-04 2021-01-05 石化盈科信息技术有限责任公司 一种容器配置更新方法、装置、系统、存储介质及电子设备
CN112506617B (zh) * 2020-12-16 2023-10-24 新浪技术(中国)有限公司 Kubernetes集群中边车容器的镜像更新方法及装置
CN112799777B (zh) * 2020-12-31 2024-04-05 深圳软通动力信息技术有限公司 一种流水线中预热调度的方法
CN113157281B (zh) * 2021-03-26 2024-02-13 北京百度网讯科技有限公司 开发环境的创建方法、装置、电子设备和存储介质
CN113230660B (zh) * 2021-06-09 2022-10-14 腾讯科技(深圳)有限公司 应用程序更新方法、装置及设备
CN113485795B (zh) * 2021-07-26 2024-03-26 四川万益能源科技有限公司 一种基于多种类型项目的自动化容器启动方法
CN113626043B (zh) * 2021-08-04 2024-04-05 武汉美和易思数字科技有限公司 一种基于Kubernetes的容器开发环境自动打包方法及系统
CN113672368A (zh) * 2021-08-18 2021-11-19 上海哔哩哔哩科技有限公司 任务调度方法及系统
CN113641480B (zh) * 2021-08-27 2023-12-15 四川中电启明星信息技术有限公司 一种基于Kubernetes集群组的任务调度系统及方法
CN113448601B (zh) * 2021-08-30 2022-01-11 阿里云计算有限公司 基于内容分发网络的软件包安装方法、装置、设备和系统
CN113806015B (zh) * 2021-09-03 2023-12-12 上海云轴信息科技有限公司 一种基于arm架构的虚拟路由网络构建方法及设备
CN113821228B (zh) * 2021-09-30 2023-07-11 奥特酷智能科技(南京)有限公司 一种基于分层容器镜像构建ros或类ros项目的方法
CN113918096B (zh) * 2021-10-21 2023-09-22 城云科技(中国)有限公司 一种算法镜像包的上传方法、装置及应用
CN114116487B (zh) * 2021-11-29 2024-03-15 北京百度网讯科技有限公司 压力测试方法、装置、电子设备及存储介质
US20230208828A1 (en) * 2021-12-23 2023-06-29 Dell Products, L.P. Layered workspace endorsement and verification
CN114281706B (zh) * 2021-12-30 2023-09-12 北京瑞莱智慧科技有限公司 一种模型测评方法、系统及存储介质
CN115268909A (zh) * 2022-07-23 2022-11-01 杭州沧浪健康管理有限公司 一种web前端创建并运行构建任务的方法、系统和终端
CN115396122B (zh) * 2022-10-27 2023-04-25 聚梦创新(北京)软件技术有限公司 消息处理方法、装置、电子设备及存储介质
CN115562690B (zh) * 2022-12-05 2023-04-18 杭州未名信科科技有限公司 基于Docker容器的算法服务处理方法、装置及介质
CN116301950B (zh) * 2023-05-15 2023-08-01 北京中诺链捷数字科技有限公司 Docker镜像生成方法、装置、设备和存储介质
CN116680040B (zh) * 2023-07-26 2024-04-05 腾讯科技(深圳)有限公司 一种容器处理方法、装置、设备、存储介质及程序产品
CN116737173A (zh) * 2023-08-11 2023-09-12 华控清交信息科技(北京)有限公司 一种在k8s容器集群上的服务集成方法、装置及电子设备
CN117270886B (zh) * 2023-11-17 2024-02-06 浪潮通用软件有限公司 一种微服务系统开发部署方法、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105824614A (zh) * 2015-12-15 2016-08-03 广东亿迅科技有限公司 基于Docker的分布式开发环境的搭建方法及装置
CN106325975A (zh) * 2016-09-09 2017-01-11 浪潮软件股份有限公司 一种利用Docker容器自动化部署与管理大数据集群的方法
CN106487815A (zh) * 2016-12-21 2017-03-08 乾云众创(北京)信息科技研究院有限公司 一种基于白名单的容器运行安全验证处理方法及系统
CN106873975A (zh) * 2016-12-30 2017-06-20 武汉默联股份有限公司 基于Docker的devops持续交付与自动化系统及方法
WO2017106726A1 (en) * 2015-12-18 2017-06-22 Amazon Technologies, Inc. Software container registry service
CN106888254A (zh) * 2017-01-20 2017-06-23 华南理工大学 一种基于Kubernetes的容器云架构及其各模块之间的交互方法
CN106997297A (zh) * 2017-03-31 2017-08-01 广东亿迅科技有限公司 一种基于DevOps的软件开发管理平台及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528200A (zh) * 2016-10-08 2017-03-22 广州视睿电子科技有限公司 一种基于docker compose的持续集成方法及装置
CN107766126B (zh) * 2017-11-15 2023-01-13 腾讯科技(深圳)有限公司 容器镜像的构建方法、系统、装置及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105824614A (zh) * 2015-12-15 2016-08-03 广东亿迅科技有限公司 基于Docker的分布式开发环境的搭建方法及装置
WO2017106726A1 (en) * 2015-12-18 2017-06-22 Amazon Technologies, Inc. Software container registry service
CN106325975A (zh) * 2016-09-09 2017-01-11 浪潮软件股份有限公司 一种利用Docker容器自动化部署与管理大数据集群的方法
CN106487815A (zh) * 2016-12-21 2017-03-08 乾云众创(北京)信息科技研究院有限公司 一种基于白名单的容器运行安全验证处理方法及系统
CN106873975A (zh) * 2016-12-30 2017-06-20 武汉默联股份有限公司 基于Docker的devops持续交付与自动化系统及方法
CN106888254A (zh) * 2017-01-20 2017-06-23 华南理工大学 一种基于Kubernetes的容器云架构及其各模块之间的交互方法
CN106997297A (zh) * 2017-03-31 2017-08-01 广东亿迅科技有限公司 一种基于DevOps的软件开发管理平台及方法

Also Published As

Publication number Publication date
WO2019095936A1 (zh) 2019-05-23
CN107766126A (zh) 2018-03-06

Similar Documents

Publication Publication Date Title
CN107766126B (zh) 容器镜像的构建方法、系统、装置及存储介质
US11178207B2 (en) Software version control without affecting a deployed container
US10977111B2 (en) Constraint solver execution service and infrastructure therefor
US11086661B2 (en) Container chaining for automated process completion
CN108304201B (zh) 对象更新方法、装置及设备
JP6813152B2 (ja) ソフトウェア・コンテナ中のソフトウェアの識別を決定するための方法、システム、およびプログラム
CN114008605A (zh) 大数据应用生命周期管理
US10416979B2 (en) Package installation on a host file system using a container
US11200157B1 (en) Automated execution reporting for container builds
US20170262266A1 (en) Orchestrating the lifecycle of multiple-target applications
CN111901294A (zh) 一种构建在线机器学习项目的方法及机器学习系统
US10019293B2 (en) Enhanced command selection in a networked computing environment
JP2021500686A (ja) デバイス設計のためのコードモジュール選択
CN111580926A (zh) 模型发布方法、模型部署方法、装置、设备及存储介质
WO2020046981A1 (en) Automated code verification service and infrastructure therefor
CN117112122A (zh) 一种集群部署方法和装置
CN113448678A (zh) 应用信息生成方法、部署方法及装置、系统、存储介质
US11750451B2 (en) Batch manager for complex workflows
WO2022199324A1 (en) Run-time communications protocol parameter adjustment in containerized applications
CN115617668A (zh) 一种兼容性测试方法、装置及设备
CN114860203A (zh) 项目创建方法、装置、服务器及存储介质
CN112363700A (zh) 智能合约的协同创建方法、装置、计算机设备和存储介质
Vani Building, deploying and validating a home location register (HLR) using Jenkins under the docker and container environment
CN112181401A (zh) 应用构建方法及应用构建平台
CN113806327A (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