我想使用Docker在服务器 A 上设置Jenkins master,在服务器 B 上设置slave。
两台服务器都是专用于Jenkins的虚拟机。
目前,我已根据官方Jenkins泊坞窗图片在服务器 A 上为主启动了Docker容器。但是我应该使用什么docker图像用于Jenkins slave ?
答案 0 :(得分:5)
这实际上取决于构建环境中所需的环境和工具。例如,如果您构建C项目,则需要包含C编译器的图像,如果使用Makefile,则可能需要make
。如果您构建一个Java项目,那么如果您将它们用作构建的一部分,则需要一个带有Java编译器的JDK以及可能需要Ant / Maven / Gradle的JDK。
您可以使用evarga/jenkins-slave作为构建奴隶的良好起点。
此图片已包含JDK。如果您只需要在构建从属服务器上使用JDK和Maven,则可以使用以下Dockerfile
构建Docker镜像:
FROM evarga/jenkins-slave
run apt-get install maven
将Docker镜像用于构建从属实际上是一个好主意。部分原因出现在Templating Jenkins Build Environments with Docker Containers:
Docker已经确立了自己作为一种流行且便捷的方式 bootstrap隔离和可重现的环境,使Docker成为可能 容器是最易维护的从属环境。搬运工人 容器的工具和其他配置可以进行版本控制 在名为Dockerfile和Dockerfiles的环境定义中 允许使用此快速创建多个相同的容器 定义或通过使用创建更多定制的off-shoots Dockerfile的图像作为基础。
答案 1 :(得分:2)
我建议您尝试使用动态|临时docker节点,而不是手动创建节点并通过ssh连接到它们。看一下https://engineering.riotgames.com/news/putting-jenkins-docker-container,它非常强大,我认为它是Docker的杀手级用例之一。