Jenkins master要将构建任务分配给Docker,就必须在Jenkins agent上安装Docker。建议给这些agent打上docker的标签。
要将 Jenkins agent 的用户加入Docker的用户组中,这样Jenkins agent不需要加sudo就能执行docker命令。如果不生效,则可能需要重启Jenkins agent。
pipeline插件从2.5版本开始就内置了Docker插件
与之前不同的,在agent部分我们将node换成了docker。下面分别解释docker的常用选项。
• label(可选):字符串类型,与node的label的作用一样。
• image:字符串类型,指定构建时使用的Docker镜像。
• args(可选):字符串类型,Jenkins执行docker run命令时所带的参数,如args'-v/tmp:/tmp'。
• alwaysPull(可选):布尔类型,强制每次执行docker pull命令时都重新拉取镜像。
Docker拉取镜像时,默认是从Docker官方中心仓库拉取的。那么如何实现从私有仓库拉取呢?
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私有仓库的凭证。