在Docker 中搭建Jenkins Slave有几种方式,包括slave ssh, JNLP和 run as Jenkins docker cloud slave.所有的这些方式的前提是有一个合适的docker image作为slave,合适的意思是不同的项目需要不同的build toolkit, 但是如果Jenkins slave 是从SSH launch,那么这个image至少需要sshd server和JDK installed(参考https://wiki.jenkins.io/display/JENKINS/Docker+Plugin)
1. slave as stand alone Jenkins server
如果使用jenkins/ssh-slave作为base image,需要在启动的使用inject public key.
关于如何生成public key:
|
cd ~/.ssh ssh-****** -t rsa -C "Jenkins key" cat jenkins.pub |
然后,起一个docker container,使用jenkins/ssh-slave作为image
|
docker pull jenkins/ssh-slave docker run -d -P --name slave jenkins/ssh-slave "<publick key>" |
假设22端口expose在端口32769
可以使用如下命令登陆
| ssh -p 32769 [email protected] |
找到这个container对应的IP
| docker inspect slave |
2.Jenkins->Manage Jenkins->Manage Node->New Node,填入一个node name,然后按照如下配置slave