jenkinspipeline(在容器中运行 Jenkins pipeline 任务)

:暂无数据 2026-10-12 17:00:01 :0

jenkinspipeline(在容器中运行 Jenkins pipeline 任务)

各位老铁们,大家好,今天由我来为大家分享jenkinspipeline,以及在容器中运行 Jenkins pipeline 任务的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

本文目录

在容器中运行 Jenkins pipeline 任务

持续集成中的 pipeline 技术和 docker 都是当前正在发展的主流方向,当然把它们结合起来在 CI/CD 过程中发挥出更强大的威力也是大家共同的目标。本文将介绍如何在 Jenkins pipeline 中集成使用 docker,好在当前的 Jenkins 已经默认通过插件实现了与 docker 的集成,所以这将是一段轻松愉快的旅程。

简单起见,我们使用一台安装了 docker 的 linux 虚机,并通过 ssh 将其启动为 Jenkins server 的 build agent。主要操作步骤如下:

我们通过下面的脚本一次搞定这些操作(docker 的安装请参考官方文档):

在 linux 虚机上执行上面的脚本,然后在 Jenkins 中添加 node(build agent):

其中的 "Remote root directory" 就是刚才创建的 /var/jenkins 目录。"Launch method" 选择 "Launch slave agents via SSH"。Host 为 linux 虚机的 IP,Credentials 则为刚才创建的 jenkins 用户。

先来运行一个简单的 demo。创建一个 pipeline 类型的 job,并输入下面的 pipeline script:

运行该任务,执行结果如下:

其中的命令 node --version 就是在容器中执行的。

Jenkins 默认会把任务分配给任何可用的 agent,如果我们要指定任务执行的 agent,可以在 docker 的配置中指定 label,这样该任务只会被分配到具有某个 label 的 agent 上运行:

我们还可以在 folder 级别指定 label,这样的设置会应用在 folder 内所有没有设置 label 的任务上:

除了 label,还可以设置 docker registry URL 及其身份认证的凭据。

我们还可以在不同的 stage 中运行不同的容器,其实就是每个 stage 用自己的容器镜像创建容器并执行任务,stage 之间没啥关系:

通过指定 Dockerfile 文件,在 build agent 上直接构建容器镜像,然后生成容器并执行命令。下面的 demo 中我们通过 Dockerfile 创建一个包含 curl 工具的容器镜像,然后通过该镜像启动容器并执行 HTTP 请求。该 demo 一共包含三个文件:Dockerfile 、entrypoint.sh 和 Jenkinsfile,大家可以直接从这里下载它们。先看一下 Dockerfile 文件的内容:

其中的 entrypoint.sh 内容如下:

Jenkinsfile 的内容如下:

注意,该文件中我们设置了 dir 为 curl 目录,这是因为此项目的 Dockerfile 文件不是在代码库的根目录下,所以需要指定其相对目录的路径。

然后在 Jenkins 中创建 pipeline 类型的 job,并把 pipeline 的 Definition 设置为 "Pipeline script from SCM" 。接下来设置好代码仓库的路径就可以了。运行该任务,从日志上可以看到取完代码后先通过 Dockerifle 文件构建了容器镜像:

并在容器中运行了 ***隐藏网址*** 命令。

上面的例子中我们通过 Dockerfile 生成了容器镜像,并且完成了相关的测试(通过 curl 请求了测试网页)。接下来就是把生成的容器镜像推送到镜像仓库中。下面将演示如何在 pipeline 中把构建的镜像推送的镜像仓库。首先在 Folder 的配置界面中添加访问 dockerhub.com 凭据如下:

如果是访问 dockerhub 就不需要填写 "Docker registry URL"。然后添加下面的 Pipeline script:

注意, 9e70c1eb-814c-4cf2-97e9-5bfc20461231 刚才创建的凭据的 ID,可以从 folder 的 Credentials 界面中获得。运行这个任务,执行成功后去 dockerhub.com 上看一下,是不是已经把新构建的镜像推送上去了:

从本文的几个简单 demo 可以看出,jenkins pipeline 和 docker 集成的已经很好了。当然你还可以实现更多更复杂的用例,赶紧动手吧!

参考:

Using Docker with Pipeline

Pipeline Syntax

作者:sparkdev

***隐藏网址***

jenkins pipeline 将字符串转换成数组

这种方式会吧dev,test,uat,prd所有的参数都被当作字符串循环处理了

这个时候就需要把字符串转换成数组形式,groovy中使用split()方法分割字符串并返回数组形式

参考文档

关于jenkinspipeline和在容器中运行 Jenkins pipeline 任务的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

jenkinspipeline(在容器中运行 Jenkins pipeline 任务)

本文编辑:admin

更多文章:


anaconda和python(python和anaconda区别是什么)

anaconda和python(python和anaconda区别是什么)

各位老铁们好,相信很多人对anaconda和python都不是特别的了解,因此呢,今天就来为大家分享下关于anaconda和python以及python和anaconda区别是什么的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来

2026年10月14日 17:40

三角函数度数对应的值(常见角的三角函数值)

三角函数度数对应的值(常见角的三角函数值)

这篇文章给大家聊聊关于三角函数度数对应的值,以及常见角的三角函数值对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月14日 13:30

tomcat8080端口被占用(Tomcat:我tomcat的localhost8080打不开,用netstat查看发现8080被占用,但不知道怎么解决,求解答)

tomcat8080端口被占用(Tomcat:我tomcat的localhost8080打不开,用netstat查看发现8080被占用,但不知道怎么解决,求解答)

其实tomcat8080端口被占用的问题并不复杂,但是又很多的朋友都不太了解Tomcat:我tomcat的localhost8080打不开,用netstat查看发现8080被占用,但不知道怎么解决,求解答,因此呢,今天小编就来为大家分享to

2026年10月14日 13:20

mmap用什么打开(mmap 格式的阅读器)

mmap用什么打开(mmap 格式的阅读器)

大家好,mmap用什么打开相信很多的网友都不是很明白,包括mmap 格式的阅读器也是一样,不过没有关系,接下来就来为大家分享关于mmap用什么打开和mmap 格式的阅读器的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

2026年10月14日 12:50

protocol官网(36个主流的去中心化交易所协议)

protocol官网(36个主流的去中心化交易所协议)

本篇文章给大家谈谈protocol官网,以及36个主流的去中心化交易所协议对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月14日 10:50

php文件加密方式(PHP中哪种加密方式好)

php文件加密方式(PHP中哪种加密方式好)

各位老铁们,大家好,今天由我来为大家分享php文件加密方式,以及PHP中哪种加密方式好的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年10月14日 09:20

beyond compare(BeyondCompare如何进行文件和文件夹对比)

beyond compare(BeyondCompare如何进行文件和文件夹对比)

本篇文章给大家谈谈beyond compare,以及BeyondCompare如何进行文件和文件夹对比对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔

2026年10月14日 07:50

viewsource查看源码(网页代码源怎么看)

viewsource查看源码(网页代码源怎么看)

“viewsource查看源码”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看viewsource查看源码(网页代码源怎么看)!

2026年10月14日 07:00

c语言程序分析题((c语言程序执行结果分析题)按行优先的方式把一个二维数组的元素存入一个一维数组中,并输出)

c语言程序分析题((c语言程序执行结果分析题)按行优先的方式把一个二维数组的元素存入一个一维数组中,并输出)

本篇文章给大家谈谈c语言程序分析题,以及(c语言程序执行结果分析题)按行优先的方式把一个二维数组的元素存入一个一维数组中,并输出对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年10月14日 06:00

coach的中文意思(coach意思是)

coach的中文意思(coach意思是)

今天给各位分享coach意思是的知识,其中也会对coach意思是进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月14日 03:20

最近更新

mt6853(mt6853什么意思)
2026-10-14 18:00:01 浏览:0
anaconda和python(python和anaconda区别是什么)
2026-10-14 17:40:01 浏览:0
联想25165sc(联想ThinkPad T410i(25165SC) 怎么样 一般就上下网,常常玩魔兽争霸,实况等能开全效果么)
2026-10-14 17:00:03 浏览:0
热门文章

标签列表