jenkins分布式部署--agent放入Docker

2021-06-01 17:57:18 浏览数 (1)

agent放入Docker

目前我们所有的构建都执行在机器(物理机器或虚拟机器)上。接下来介绍如何让构建执行在Docker容器中。关于Docker是什么,以及它所带来的好处,市面上介绍的文章已经足够多,本书就不做介绍了。

Jenkins master要将构建任务分配给Docker,就必须在Jenkinsagent上安装Docker。建议给这些agent打上docker的标签。

关于Docker 的具体安装过程就不细表了。但是需要注意,要将Jenkins agent 的用户加入Docker的用户组中,这样Jenkins agent不需要加sudo就能执行docker命令。如果不生效,则可能需要重启Jenkins agent。

使用Docker

pipeline插件从2.5版本开始就内置了Docker插件(docker-plugin)。所以,安装pipeline插件后,就可以直接在pipeline的agent部分指定使用什么Docker镜像进行构建了。

  1. pipeline {
  2.     agent {
  3.         docker {
  4.             label 'docker'
  5.             image 'maven:3-alpine'
  6. }
  7.         stages {
  8.             stage('build') {
  9.                 steps {
  10.                     sh 'mvn clean compile'
  11. }
  12. }
  13. }
  14. }
  15. }

与之前不同的,在agent部分我们将node换成了docker。下面分别解释docker的常用选项。

  • label(可选):字符串类型,与node的label的作用一样。
  • image:字符串类型,指定构建时使用的Docker镜像。
  • args(可选):字符串类型,Jenkins执行docker run命令时所带的参数,如args’-v/tmp : /tmp’
  • alwaysPull(可选):布尔类型,强制每次执行docker pull命令时都重新拉取镜像。

配置Docker私有仓库

进入Manage Jenkins-》Configure System页面,找到“Pipeline Model Definition”部分

  • Docker Label:当pipeline中的agent部分没有指定label选项时,就会使用此配置。如docker{image’maven : 3-alpine’}。
  • Docker registry URL:Docker私有仓库地址
  • Registry credentials:登陆Docker私有仓库的凭证。

0 人点赞