6

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

两台服务器都是 Jenkins 专用的虚拟机。

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

4

2 回答 2

5

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

您可以使用evarga/jenkins-slave作为构建从站的良好起点。

此映像已包含 JDK。如果您只是在构建从属设备上需要 JDK 和 Maven,您可以使用以下内容构建您的 Docker 映像Dockerfile

FROM evarga/jenkins-slave

run apt-get install maven

使用 Docker 镜像构建 slave 实际上是一个好主意。一些原因出现在使用 Docker Containers 模板化 Jenkins 构建环境中

Docker 已将自己确立为一种流行且方便的方式来引导隔离和可重现的环境,这使 Docker 容器成为最可维护的从属环境。Docker 容器的工具和其他配置可以在称为 Dockerfile 的环境定义中进行版本控制,并且 Dockerfiles 允许使用此定义快速创建多个相同的容器,或者使用该 Dockerfile 的图像作为基础来创建更多自定义的分支.

于 2016-09-25T07:10:33.133 回答
3

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

于 2016-10-10T15:40:42.277 回答