使用Docker运行Jenkins master和slave

我想使用Docker在服务器A上设置Jenkins主服务器,在服务器B上设置从服务器。

两台服务器都是专门为Jenkinsdevise的虚拟机。

目前,我已经在服务器A上启动Docker容器,基于官方的Jenkins docker镜像。 但是,我应该为jenkins奴隶使用什么docker图像?

这实际上取决于您在构build环境中需要的环境和工具。 例如,如果您构build一个C项目,则需要包含C编译器的映像,如果使用Makefile,则可能make生成该映像。 如果您构build了一个Java项目,那么如果您将它们用作构build的一部分,则需要一个带有Java编译器的JDK以及可能的Ant / Maven / Gradle。

你可以使用evarga / jenkins-slave作为你的build slave的一个很好的起点。

这个图像已经包含了JDK。 如果您只需要构build从站上的JDK和Maven,则可以使用以下Dockerfile构buildDocker镜像:

 FROM evarga/jenkins-slave run apt-get install maven 

使用Docker镜像构build从站实际上是个好主意。 部分原因出现在使用Docker容器的Templating Jenkins构build环境中 :

Docker已经将自己build立为引导孤立且可重复的环境的stream行和便捷的方式,这使得Docker容器成为最易维护的从属环境。 Docker容器的工具和其他configuration可以在称为Dockerfile的环境定义中进行版本控制,并且Dockerfiles允许使用此定义快速创build多个相同的容器,或者通过使用该Dockerfile的图像作为基础创build更多的自定义临时创build。

我build议你尝试使用dynamic|临时docker节点,而不是手动创build节点并通过ssh连接到它们。 看看https://engineering.riotgames.com/news/putting-jenkins-docker-container ,它非常强大,我认为这是Docker的杀手级应用之一。