CN111736810A - 基于jenkins实时任务动态创建docker容器节点执行任务的方法 - Google Patents

基于jenkins实时任务动态创建docker容器节点执行任务的方法 Download PDF

Info

Publication number
CN111736810A
CN111736810A CN202010829505.4A CN202010829505A CN111736810A CN 111736810 A CN111736810 A CN 111736810A CN 202010829505 A CN202010829505 A CN 202010829505A CN 111736810 A CN111736810 A CN 111736810A
Authority
CN
China
Prior art keywords
jenkins
information
mirror image
dockerfile
version
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.)
Pending
Application number
CN202010829505.4A
Other languages
English (en)
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.)
Sichuan XW Bank Co Ltd
Original Assignee
Sichuan XW Bank 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 Sichuan XW Bank Co Ltd filed Critical Sichuan XW Bank Co Ltd
Priority to CN202010829505.4A priority Critical patent/CN111736810A/zh
Publication of CN111736810A publication Critical patent/CN111736810A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • 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
    • 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/45575Starting, stopping, suspending or resuming 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

本发明涉及基于jenkins实时任务动态创建docker容器节点执行任务的方法,包括:A.开发一种定制化生成dockerfile的脚本,动态生成dockerfile格式文件从而生成容器镜像;B.定制化开发jenkins插件,实时获取jenkins job排队队列信息,并进行动态启动容器镜像,注册为jenkins slave节点,完成jenkins job任务;C.jenkins插件实时统计正在运行中的jenkins job的数量,并且将该数量和设定的最大并行数进行比较,如果少于最大并行数,则从保存实时jenkins job排队队列信息的数据库中获取job信息,并根据job信息,启动容器作为jenkins slave,执行jenkins job设定的任务。本发明不需要长期占用资源,在有大量并发任务的场景中,通过自动销毁容器节点,能够节约大量资源,并可以根据实际情况,动态调整最大jenkins job数量,满足业务要求,提高资源使用率。

Description

基于jenkins实时任务动态创建docker容器节点执行任务的 方法
技术领域
本发明涉及软件开发和软件测试技术领域,尤其涉及一种基于jenkins实时任务动态创建docker容器节点执行任务的方法。
背景技术
Jenkins是一种开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Docker是一种开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。Jenkins slave节点: 同jenkins 主节点进行交互,接受jenkins主节点分发的jenkins job,在子节点上完成jenkins job设定的任务。
目前Jenkins的slave节点都是预先准备好的长期保留的虚拟机或者物理机,然后该节点通过SSH或者jnlp方式,主动连接到jenkins master节点,将自己注册成为Jenkins的一个slave节点。
但是该模式意味着slave节点需要一直存在,有jenkins job的时候,才能立刻执行job。如果jenkins在某一个时候,有大批量的任务需要执行的时候,需要长期保持大批量的slave节点,才能满足及时响应需求。该种方式在没有jenkins任务的时候,大量的slave节点处于闲置状态,资源使用率不高。
发明内容
为解决现有技术方案中资源使用率不高的问题,本发明提供一种基于jenkins实时任务动态创建docker容器节点执行任务的方法,动态创建jenkins slave节点,不需要长期占用,在有大量并发任务的场景中,通过自动销毁容器节点,能够节约大量资源,并可以根据实际情况,动态调整最大jenkins job数量,满足业务要求。
本发明基于jenkins实时任务动态创建docker容器节点执行任务的方法,包括:
A.开发一种定制化生成dockerfile的脚本,针对dockerfile中包含的关键字进行预定义,根据传入的参数获取预定义值,动态生成dockerfile格式文件,生成容器镜像;
B.定制化开发jenkins插件,实时获取jenkins job排队队列信息,并进行动态启动容器镜像,注册为jenkins slave节点,完成jenkins job任务;
C.jenkins插件实时统计正在运行中的jenkins job的数量,并且将该数量和设定的最大并行数进行比较,如果少于最大并行数,则从保存实时jenkins job排队队列信息的数据库中获取job信息,并根据job信息,启动容器作为jenkins slave,执行jenkins job设定的任务。
本发明动态创建dockerfile,并生成容器镜像,只需创建一次,后续可以直接使用并且动态创建jenkins slave节点,不需要长期占用,在有大量并发任务的场景中,通过自动销毁容器节点,能够节约大量资源,并可以根据实际情况,动态调整最大jenkins job数量,满足业务要求。
进一步的,步骤A包括:
A1.根据linux的版本不同,定制化脚本通过接收到的linxu的版本参数,对dockerfile的关键字FROM进行赋值,生成符合dockerfile格式的文本;
A2.根据程序语言编译版本不同,定制化脚本通过接收到的编译语言参数,对dockerfile的关键字COPY、RUN和ENV进行组合赋值,生成符合dockerfile格式的文本;使dockerfile在经过编译过后,生成的镜像能够支持传入参数的语言编译环境。
A3.根据git和svn版本管理环境不同,定制化脚本通过接收到的版本控制软件参数,对dockerfile的关键字COPY和RUN进行赋值,生成符合dockerfile格式的文本;使dockerfile在经过编译过后,生成的镜像能够支持传入参数的制定版本控制环境。
A4.根据A1、A2和A3步骤,生成由各种linxu版本参数、编译语言参数和版本控制软件参数组合成的dockerfile文件,并通过docker build生成容器镜像,该容器镜像以linxu版本、编译语言版本和版本控制软件的信息组合命名,并且保存到镜像仓库中。
进一步的,步骤B包括:
B1.定制化开发jenkins插件,并设置jenkins的最大动态并行job数以及linux版本、编程语言和版本管理的参数;
B2.根据实时的jenkins job队列信息,将所有实时的jenkins job排队队列信息写入数据库;
B3.根据设置的jenkins的最大动态并行job数,从保存jenkins job排队队列信息的数据库中读取出指定数量的jenkins job;
B4.定制化的jenkins插件获取jenkins job包含的版本控制软件信息、语言编译版本信息和linux版本信息,并且根据linxu版本、语言编译版本和版本控制软件的信息组合命名的方法得到容器镜像名,在镜像仓库中查询是否有相同容器镜像名的镜像;
如果有相同容器镜像名的镜像则直接启动该镜像,并通过JNPL方式主动将该镜像注册为jenkins slave节点,执行jenkins job设定的任务;
如果没有符合要求的镜像,则根据jenkins job的版本控制软件信息、语言编译版本信息和linux版本信息生成一个dockerfile文件,并通过docker build生成容器镜像,并保存到镜像仓库中,再次启动该新建的容器镜像,并通过JNPL方式主动将该镜像注册为jenkinsslave节点,执行jenkins job设定的任务。动态创建dockerfile,并生成容器镜像,只需创建一次,后续可以直接使用。
进一步的,步骤C包括:
C1.获取设定的最大动态并行job数,和实时运行的jenkins job数进行比较,如果设定的最大动态并行job数大于实时运行的jenkins job数则从数据库中获取jenkins job信息,根据步骤B4执行jenkins job;
C2.循环执行C1步骤工作,直至保存jenkins job排队队列信息的数据库中的数据为空;
C3.完成jenkins job设定的任务后,自动注销运行该jenkins job的jenkins slave节点从而释放资源。
本发明基于jenkins实时任务动态创建docker容器节点执行任务的方法,动态创建dockerfile,并生成容器镜像后动态创建jenkins slave节点不需要长期占用,在有大量并发任务的场景中,通过自动销毁容器节点,能够节约大量资源,并可以根据实际情况,动态调整最大jenkins job数量,满足业务要求。
附图说明
图1为本发明基于jenkins实时任务动态创建docker容器节点执行任务的方法的流程图。
具体实施方式
以下结合实施例的具体实施方式,对本发明的上述内容再作进一步的详细说明。但不应将此理解为本发明上述主题的范围仅限于以下的实例。在不脱离本发明上述技术思想情况下,根据本领域普通技术知识和惯用手段做出的各种替换或变更,均应包括在本发明的范围内。
如图1所示本发明基于jenkins实时任务动态创建docker容器节点执行任务的方法,包括:
A. 动态生成dockerfile格式文件。
开发一种定制化生成dockerfile的脚本,针对dockerfile中的关键字:FROM,RUN,COPY,ENV的值进行预定义,然后根据传入的参数,获取预定义值,动态生成dockerfile格式文件。
A1. 基于不同的linux版本,定制化脚本通过接收的linux版本参数,对dockerfile的FROM关键字进行赋值。例如传入的linux版本参数是centos7.6, 则生成如下符合dockerfile格式要求的文本:FROM centos7.6
A2. 针对程序语言编译环境,定制化脚本通过接收的编译语言参数,对dockerfile的COPY和RUN、ENV等关键字进行组合赋值,使dockerfile在经过编译过后,生成的镜像能够支持传入参数的语言的编译环境。例如传入参数JAVA1.8, 则生成如下符合dockerfile格式要求的文本,如下文本描述了生成一个java运行环境的dockerfile格式文本描述:
COPY jdk1.8
ENV JAVA_HOME=/opt/jdk1.8
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar;
A3. 针对git、svn版本管理环境,定制化脚本通过接收的版本控制软件参数,对docker的COPY和RUN关键字进行赋值,使dockerfile在经过编译过后,生成的镜像能够支持传入参数的制定的版本控制环境。例如传入参数git, 则生成如下符合dockerfile格式要求的文本:
COPY git
ENV GIT_HOME=/opt/git
ENV PATH=$GIT_HOME/bin:$PATH;
A4.通过前面3个步骤,可以生成各种程序语言、基础linux版本及版本控制软件动态组合而成的dockerfile文件,文本如下:
FROM centos:7
COPY jdk1.8
ENV JAVA_HOME=/jdk1.8
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
COPY git
ENV PATH=$JAVA_HOME/bin:$PATH。
B.生成容器镜像。
dockerfile生成后,通过docker build构建镜像,并以linux版本信息、语言编译版本信息和版本控制软件信息组合命名该镜像,并保存到镜像仓库中。
C.定制化jenkins插件。
定制化jenkins插件,设定jenkins的最大动态并行job数和linux版本、编程语言和版本管理参数选项。
D.获取jenkins job并查询容器镜像。
将所有实时的jenkins job排队队列信息写入数据库,根据设定的最大并行job数,从保存实时jenkins job排队队列信息的数据库中读取出指定数量的jenkins job,该指定数量小于或等于最大并行job数;
D1.jenkins插件获取jenkins job里包含的如下信息:版本控制软件信息、语言编译版本信息和linux版本信息;
D2.jenkins插件在获取到信息后,按照linux版本信息、版本控制软件信息和语言编译版本信息组合的方式得到容器镜像名,并且在镜像仓库中查询是否有相同容器镜像名的镜像;
E.启动容器镜像并创建jenkins slave节点运行jenkins job。
E1.如果有相同容器镜像名的镜像则直接启动该镜像,并通过JNPL方式主动将该镜像注册为jenkins slave节点,执行jenkins job设定的任务;
E2.如果没有符合要求的镜像,则根据版本控制软件信息、语言编译版本信息和linux版本信息生成一个dockerfile文件,并通过docker build生成一个新的容器镜像,并保存到镜像仓库中,启动该新建的容器镜像,并通过JNPL方式主动将该镜像注册为jenkinsslave节点,执行jenkins job设定的任务。
E3.完成jenkins job设定的任务后,自动注销运行该jenkins job的jenkinsslave节点从而释放资源。
本发明动态创建dockerfile并生成容器镜像并且动态创建jenkins slave节点,不需要长期占用,在有大量并发任务的场景中,通过自动销毁容器节点,能够节约大量资源,并可以根据实际情况,动态调整最大jenkins job数量,满足业务要求,提高资源使用率。
实施例1:
1.将100个被触发的job的信息写入数据库;
2.开发一种定制化生成dockerfile的脚本; dockerfile脚本根据传入的参数,生成dockerfile文件,例如: 传入的linux版本参数是centos7.6生成一个java运行环境的dockerfile格式文本:
COPY jdk1.8
ENV JAVA_HOME=/opt/jdk1.8
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar;
传入参数JAVA1.8,生成一个java运行环境的dockerfile格式文本:
COPY jdk1.8
ENV JAVA_HOME=/opt/jdk1.8
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar;
传入参数git,生成一个git运行环境的dockerfile格式文本:
COPY git
ENV GIT_HOME=/opt/git
ENV PATH=$GIT_HOME/bin:$PATH;
最后组合而成的dockerfile文件,文本如下:
FROM centos:7
COPY jdk1.8
ENV JAVA_HOME=/jdk1.8
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
COPY git
ENV PATH=$JAVA_HOME/bin:$PATH。
调用docker build对dockerfile进行编译,生成docker 镜像,
该docker 镜像是以传入参数“操作系统版本,编译语言、版本控制软件”来命名,例如上述镜像名为:centos7.6- JAVA1.8-git。镜像生成后,保存到容器镜像仓库。
3.定制化开发jenkins插件,设定jenkins的最大动态并行数为50,jenkins插件轮询所有写入数据库job的信息,读出50个job设定的操作系统版本,编译语言、版本控制软件信息作为参数;
以job信息:“操作系统版本,编译语言、版本控制软件”来命名拼接出容器镜像名,例如某个job信息为“操作系统信息redhat5.7;代码仓库信息:svn;编译语言及版本信息:java7.0;”则该容器镜像名应为:redhat5.7- java7.0- svn;
在容器镜像仓库中查询是否有镜像名为redhat5.7- java7.0- svn的容器镜像,如果有则直接启动该镜像,并通过JNPL方式将该镜像主动注册为Jenkins slave节点,并按照jenkins job设置的信息进行job任务执行;
如果没有该镜像,则以该job的“操作系统信息redhat5.7;代码仓库信息:svn;编译语言及版本信息:java7.0”生成一个dockerfile文件新创建一个容器镜像,并保存到容器镜像仓库中,再次启动该新建的容器镜像,并通过并通过JNPL方式将该镜像主动注册为Jenkins slave节点,并按照jenkins job设置的信息进行job任务执行。
4. jenkins插件实时监控运行中的50个job,若某个job执行完成,则从数据库将该job的信息删除,并读取出第51个job按照步骤3继续执行,重复该步骤直到数据库中的100个job执行完成,然后自动释放docker slave 节点占用的硬件资源。

Claims (4)

1.基于jenkins实时任务动态创建docker容器节点执行任务的方法,其特征在于,包括:
A.开发一种定制化生成dockerfile的脚本,针对dockerfile中包含的关键字进行预定义,根据传入的参数获取预定义值,动态生成dockerfile格式文件后通过docker build生成容器镜像;
B.定制化开发jenkins插件,实时获取jenkins job排队队列信息,并进行动态启动容器镜像,注册为jenkins slave节点,完成jenkins job任务;
C.jenkins插件实时统计正在运行中的jenkins job的数量,并且将该数量和设定的最大并行数进行比较,如果少于最大并行数,则从保存实时jenkins job排队队列信息的数据库中获取job信息,并根据job信息,启动容器作为jenkins slave,执行jenkins job设定的任务。
2.如权利要求1所述的基于jenkins实时任务动态创建docker容器节点执行任务的方法,其特征在于,步骤A包括:
A1.根据linux的版本不同,定制化脚本通过接收到的linxu的版本参数,对dockerfile的关键字FROM进行赋值,生成符合dockerfile格式的文本;
A2.根据程序语言编译版本不同,定制化脚本通过接收到的编译语言版本参数,对dockerfile的关键字COPY、RUN和ENV进行组合赋值,生成符合dockerfile格式的文本;
A3.根据git和svn版本管理环境不同,定制化脚本通过接收到的版本控制软件参数,对dockerfile的关键字COPY和RUN进行赋值,生成符合dockerfile格式的文本;
A4.根据A1、A2和A3步骤,生成由各种linxu版本参数、编译语言版本参数和版本控制软件参数组合成的dockerfile文件,并通过docker build生成容器镜像,该容器镜像以linxu版本、编译语言版本和版本控制软件的信息组合命名,并且保存到镜像仓库中。
3.如权利要求1所述的基于jenkins实时任务动态创建docker容器节点执行任务的方法,其特征在于,步骤B包括:
B1.定制化开发jenkins插件,并设置jenkins的最大动态并行job数以及linux版本、编程语言版本和版本控制软件的参数;
B2.根据实时的jenkins job队列信息,将所有实时的jenkins job排队队列信息写入数据库;
B3.根据设置的jenkins的最大动态并行job数,从保存jenkins job排队队列信息的数据库中读取出指定数量的jenkins job;
B4.定制化的jenkins插件获取jenkins job包含的版本控制软件信息、语言编译版本信息和linux版本信息,并且根据linxu版本、语言编译版本和版本控制软件的信息组合命名的方法得到容器镜像名,在镜像仓库中查询是否有相同容器镜像名的镜像;
如果有相同容器镜像名的镜像则直接启动该镜像,并通过JNPL方式主动将该镜像注册为jenkins slave节点,执行jenkins job设定的任务;
如果没有符合要求的镜像,则根据jenkins job的版本控制软件信息、语言编译版本信息和linux版本信息生成一个dockerfile文件,并通过docker build生成一个新的容器镜像并保存到镜像仓库后启动该新建的容器镜像,并通过JNPL方式主动将该镜像注册为jenkins slave节点,执行jenkins job设定的任务。
4.如权利要求1所述的基于jenkins实时任务动态创建docker容器节点执行任务的方法,其特征在于,步骤C包括:
C1.获取设定的最大动态并行job数,和实时运行的jenkins job数进行比较,如果设定的最大动态并行job数大于实时运行的jenkins job数则从数据库中获取jenkins job信息,根据步骤B4执行jenkins job;
C2.循环执行C1步骤工作,直至保存jenkins job排队队列信息的数据库中的数据为空;
C3.完成jenkins job设定的任务后,自动注销运行该jenkins job的jenkins slave节点从而释放资源。
CN202010829505.4A 2020-08-18 2020-08-18 基于jenkins实时任务动态创建docker容器节点执行任务的方法 Pending CN111736810A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010829505.4A CN111736810A (zh) 2020-08-18 2020-08-18 基于jenkins实时任务动态创建docker容器节点执行任务的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010829505.4A CN111736810A (zh) 2020-08-18 2020-08-18 基于jenkins实时任务动态创建docker容器节点执行任务的方法

Publications (1)

Publication Number Publication Date
CN111736810A true CN111736810A (zh) 2020-10-02

Family

ID=72658514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010829505.4A Pending CN111736810A (zh) 2020-08-18 2020-08-18 基于jenkins实时任务动态创建docker容器节点执行任务的方法

Country Status (1)

Country Link
CN (1) CN111736810A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416524A (zh) * 2020-11-25 2021-02-26 电信科学技术第十研究所有限公司 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置
CN112882938A (zh) * 2021-02-25 2021-06-01 重庆紫光华山智安科技有限公司 一种场景数据测试方法、系统、电子设备及介质
CN114995897A (zh) * 2022-05-07 2022-09-02 远光软件股份有限公司 获取持续集成工具运行结果的方法、装置、存储介质及计算机设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105786696A (zh) * 2014-12-26 2016-07-20 阿里巴巴集团控股有限公司 一种测试方法及装置
CN107807815A (zh) * 2017-10-19 2018-03-16 北京京东尚科信息技术有限公司 分布式处理任务的方法和装置
CN111262908A (zh) * 2020-01-09 2020-06-09 中国工商银行股份有限公司 基于jenkins的任务构建方法及系统
CN111414234A (zh) * 2020-03-20 2020-07-14 深圳市网心科技有限公司 镜像容器创建方法及装置、计算机装置及存储介质
US10719345B2 (en) * 2018-05-16 2020-07-21 International Business Machines Corporation Container image building
CN111459539A (zh) * 2020-04-07 2020-07-28 中国建设银行股份有限公司 基于镜像分层的持续集成流水线运行方法及装置
CN111475260A (zh) * 2020-04-10 2020-07-31 杭州趣维科技有限公司 一种基于jenkins和kubernetes平台的可弹性CICD方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105786696A (zh) * 2014-12-26 2016-07-20 阿里巴巴集团控股有限公司 一种测试方法及装置
CN107807815A (zh) * 2017-10-19 2018-03-16 北京京东尚科信息技术有限公司 分布式处理任务的方法和装置
US10719345B2 (en) * 2018-05-16 2020-07-21 International Business Machines Corporation Container image building
CN111262908A (zh) * 2020-01-09 2020-06-09 中国工商银行股份有限公司 基于jenkins的任务构建方法及系统
CN111414234A (zh) * 2020-03-20 2020-07-14 深圳市网心科技有限公司 镜像容器创建方法及装置、计算机装置及存储介质
CN111459539A (zh) * 2020-04-07 2020-07-28 中国建设银行股份有限公司 基于镜像分层的持续集成流水线运行方法及装置
CN111475260A (zh) * 2020-04-10 2020-07-31 杭州趣维科技有限公司 一种基于jenkins和kubernetes平台的可弹性CICD方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
吴伟: ""基于IBM Cloud Private的DevOps实践:充分利用容器云的优势,构建灵活的Jenkins集群"", 《HTTPS://DEVELOPER.IBM.COM/ZH/ARTICLES/D-BASED-IBM-CLOUD-PRIVATE/》 *
蒋刚毅: ""[持续交付实践]Jenkins Pipeline高可用设计方法"", 《HTTPS://TESTERHOME.COM/TOPICS/17251》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416524A (zh) * 2020-11-25 2021-02-26 电信科学技术第十研究所有限公司 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置
CN112882938A (zh) * 2021-02-25 2021-06-01 重庆紫光华山智安科技有限公司 一种场景数据测试方法、系统、电子设备及介质
CN114995897A (zh) * 2022-05-07 2022-09-02 远光软件股份有限公司 获取持续集成工具运行结果的方法、装置、存储介质及计算机设备

Similar Documents

Publication Publication Date Title
JP4950447B2 (ja) ワークフロースケジュールのオーサリングツール
CN111736810A (zh) 基于jenkins实时任务动态创建docker容器节点执行任务的方法
JP5259924B2 (ja) レガシーコンポーネントのための動的サービスの生成
US20030204644A1 (en) System and method for developing, deploying, and debugging software agents
WO2020015191A1 (zh) 业务规则的发布管理方法、电子装置及可读存储介质
CN112748908A (zh) 基于SSM框架的Restful服务开发方法与装置
CN111506314B (zh) 项目开发的方法、装置、服务器及介质
CN111258565A (zh) 小程序的生成方法、系统、服务器及存储介质
JP2009524856A (ja) 質的に注釈を付けられた注釈付きコード
CN112769706B (zh) 组件化路由方法及系统
CN115658237A (zh) 一种容器应用自动部署方法、设备、装置、设备及介质
CN111736923A (zh) 数据处理方法、装置、电子设备及可读存储介质
CN110806891B (zh) 嵌入式设备软件版本的生成方法及装置
CN115390846A (zh) 编译构建方法、装置、电子设备和存储介质
CN112001715B (zh) 一种分布式前端工具的使用方法及系统
CN114327770A (zh) 容器集群管理系统及方法
CN112363700A (zh) 智能合约的协同创建方法、装置、计算机设备和存储介质
Geppert et al. Combining SDL Patterns with Continuous Quality Improvement: An Experience Factory Tailored to SDL Patterns
CN113126961B (zh) 流水线处理方法、装置和存储介质
CN117539603A (zh) 工作流调度方法和装置、计算机可读存储介质
CN115801880A (zh) 一种自动驾驶中间件适配方法及机器可读存储介质
CN112732240A (zh) 一种Java组件的生成方法及装置
CN111459470A (zh) 一种Hub系统对接第三方软件生成代码及文档的方法
CN116302963A (zh) 基于模块编译工具mbs的软件测试方法、系统及介质
CN114968339A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20201002

RJ01 Rejection of invention patent application after publication