设为首页 | 加入收藏

欢迎访问彩票大赢家双色球图表-彩票大赢家ios版下载-彩票大赢家走势图新版

贸易开工 >> 手工灯笼制作-在容器中运转 Jenkins pipeline 使命

继续集成中的 pipeline 技能和 docker 都是当时正在开展的干流方向,当然把它们结合起来在 CI/CD 过程中发挥出更强壮的威力也是咱们一起的方针。本文将介绍如安在 Jenkins pipeline 中集成运用 docker,好在当时的 Jenkins 现已默许经过插件完成了与 docker 的集成,所以这将是一段轻松愉快的旅程。

增加 linux 主机作为 build agent

简略起见,咱们运用一台装置了 docker 的 linux 虚手工灯笼制作-在容器中运转 Jenkins pipeline 使命机,并经过 ssh 将其发动为 Jenkins server 的 build agent。首要操作过程如下:

  • 在 linux 机器上创立一个用户 jenkins, 暗码为 123456
  • 创立目录 /var/jenkins, 并把 owner 修改为 jenkins
  • 装置 jre,留意:有必要装置
  • 装置 docker

咱们经过下面的脚本一次搞定这些操作(docker 的装置请参阅官方文乱片AA档):

在 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 手工灯笼制作-在容器中运转 Jenkins pipeline 使命中咱们经过手工灯笼制作-在容器中运转 Jenkins pipeline 使命 Dockerfile 创立一个包括 curl 东西的容器镜像,然后经过该镜像发动容器并履行 HTTP 恳求。该 demo 总共包括三个文件:Dockerfile 、entrypoint.sh 和 Jenkinsfile,咱们能够直接从这儿下载它们。先看一下 Dockerfile 文件的内容:

其间的 entryp手工灯笼制作-在容器中运转 Jenkins pipeline 使命oint.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手工灯笼制作-在容器中运转 Jenkins pipeline 使命 上看一下,是不是现已把新构建的镜像推送上去了:

总结

从本文的几个简略 demo 能够看出,jenkins pipeline 和 docker 集成的现已很好了。当然你还能够完成更多更杂乱的用例,赶忙着手吧!

参阅:

Using Docker with Pipeline

Pipeline Syntax

作者:sparkdev

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



上一条      下一条
返回顶部