使用Docker构建基于Jenkins的GCC编译环境Slave

第一篇有点干货的文章,虽然没什么技术含量但还是写一篇方便有相同需求的人快速搭出一个环境吧。

提前准备

基本的Jenkins Docker Git 和 Linux 知识。
一台运行了Docker的x86设备。

0x1配置Docker

首先将[Dockerfile]和运行脚本下载下来,接着build镜像。镜像建好之后,从该镜像新建一个容器。如果你的 Jenkins 不是运行在 Docker 里的话。那么建议添加-p的端口映射指令,将22端口映射到主机的某个 Docker ,使 Jenkins 能够访问得到。

0x2 配置Jenkins

打开 Jenkins,登入。在主界面点击 Manage Jenkins -> Manage Nodes。

之后点击左边的 New Node -> 选择 Permanent Agent 输入完名称之后点击 OK。在接来下出现的设置对话框中,我们需要注意的有这么几个选项。

  1. # of executors -> 这个决定了该节点能够同时运行的任务数量,如果你的编译脚本或者说编译任务没有对多线程CPU进行优化的话, 那么我建议设置成 CPU个数 * 核心数。
  2. Remote root directory -> 这个决定了该节点的工作目录。可以配合Docker的挂载目录使用。

  3. Usage -> 这个需要根据个人需求来做设置了。默认有两个选项一个是仅执行指定分配的任务,另外一个是尽可能的执行任务。我自己的设置是仅执行指定分配的任务,因为该节点是只用来编译测试x86环境的。所以只运行需要在x86环境上测试的任务。

  4. Launch method -> 这个是选项Jenkins启动节点的方式,这里选择用SSH(需要安装SSH连接slave的插件)。Host是slave的ip(Jenkins和slave运行在同一个Docker,那么你需要查看一下运行slave容器的所分配到的IP)点击 Advanced 可以选择配置端口,添加好ssh的帐号密码 (默认密码查看slave的Dockerfile注释),以及根据个人的需求选择下放的 Host Key 验证方式。

设置完成之后就可以点击Save了。那么此时我们可以看到节点虽然添加成功了但是显示的是offline。不过如果一切正常的话,点击Launch agent就能够上线了。

0x3 测试

我这里随便选择了一个git上的项目作为测试用。具体可以参考一下配图。需要注意的是我之前节点设置的是只执行分配到节点的任务。所以在设置job的时候,需要勾上 Restrict where this project can be run 然后输入node的名称。这样构建脚本的时候才能slave才能执行。

添加完成之后点击构建,一切顺利的话就能够正常编译了。

标签:JenkinsDocker 发布于:2019-10-29 16:52:16