山东省高中信息技术学业水平考试试题网 - 数据与计算|信息系统与社会|数据与数据结构|网络基础|数据管理与分析|移动应用设计|三维设计与创意|开源硬件项目设计|算法初步|智能系统初步

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 154|回复: 8
收起左侧

在容器中运转 Jenkins pipeline 任务

[复制链接]

1067

主题

1067

帖子

214748万

积分

超级版主

Rank: 8Rank: 8

积分
2147483647
发表于 2020-11-18 15:04:22 | 显示全部楼层 |阅读模式


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

添加 linux 主机作为 build agent

简单起见,我们运用一台安装了 docker 的 linux 虚机,并经过 ssh 将其启动为 Jenkins server 的 build agent。主要操作步骤如下:
    在 linux 机器上创建一个用户 jenkins, 密码为 123456创建目录 /var/jenkins, 并把 owner 修正为 jenkins安装 jre,留意:必需安装安装 docker

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



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



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

运转简单的 demo

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



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



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

经过 label 指定运转 stage 的 agent

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



在 Folder 级别指定 label 和 registry 信息

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



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

运转多个不同的容器

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



运用 Dockerfile

经过指定 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 文件构建了容器镜像:



并在容器中运转了 curl http://www.cnblogs.com/sparkdev/p/8795141.html 命令。

把生成的容器镜像推送到仓库中

上面的例子中我们经过 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

出处:http://1t.click/aerf


潍坊行知学校复读报名系统 已经正式上线,是集高考复读报名及查询,费用(学费、住宿费、资料费)核算,校园全景VR浏览,课堂教学实录体验,人工智能客服答疑于一体的一站式服务平台。潍坊行知学校教务处王老师竭诚为你服务,不尽事宜,致电王老师13854441151,微信7X24小时在线13854441151。潍坊行知学校复读咨询,潍坊行知学校复读报名系统,潍坊行知学校复读招生预报名系统,潍坊行知学校,潍坊行知学校复读,潍坊行知学校复读收费,潍坊行知学校复读收费标准,潍坊行知学校复读生收费标准,潍坊行知学校复读报名,潍坊行知学校复读报名时间,潍坊行知学复读招生,潍坊行知学校复读生,潍坊行知学校复读班,潍坊行知学校复读招生分数要求,潍坊行知学校复读招生简章。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主热帖
+1
162°C
8
  • admin
  • admin
  • admin
  • admin
  • admin
过: 他们

帖子地址: 

回复

使用道具 举报

2333

主题

9355

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647
QQ
发表于 2020-11-18 15:04:30 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

2333

主题

9355

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647
QQ
发表于 2020-11-18 15:04:39 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

2333

主题

9355

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647
QQ
发表于 2020-11-18 15:04:49 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

2333

主题

9355

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647
QQ
发表于 2020-11-18 15:04:59 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

2333

主题

9355

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647
QQ
发表于 2020-11-18 15:05:13 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

2333

主题

9355

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647
QQ
发表于 2020-11-18 15:05:19 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

2333

主题

9355

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647
QQ
发表于 2020-11-18 15:05:27 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

2333

主题

9355

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647
QQ
发表于 2020-11-18 15:05:34 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

百度一下 百度二下 百度三下 开门大吉

QQ|Archiver|手机版|小黑屋|山东省高中信息技术学业水平考试试题网 ( 鲁ICP备16049757号-1 )|网站地图

GMT+8, 2021-2-28 23:37 , Processed in 0.370177 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表