如何在Jenkins节点上设置工作区根目录?

10

默认情况下,Jenkins节点上的任务将存储在[Remote FS root]\workspace\中。

当前,[Remote FS root]设置为D:\,因此我的任务位于D:\workspace\中。由于Windows系统限制了255个字符的目录长度,我需要直接将任务目录放在驱动器根目录下。

如何将工作区根目录设置为D:\

2个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
8

在启动Jenkins主节点时,我们必须指定以下参数:

-Dhudson.model.Slave.workspaceRoot=D:/
为此,请在$JENKINS_HOME中找到jenkins.xml配置文件,并完成<arguments></arguments>部分。

2
值得注意的是,Jenkins 属性文档指出该属性指定“从属根目录中包含工作区的文件夹名称”。因此,如果我们想在从属节点上使用 D:\jobs 而不是 D:\workspace,只需将该属性设置为 jobs 即可。似乎指定绝对路径也会覆盖从属根目录的使用。 - darrenp

3
默认情况下,Jenkins slave 上的作业将存储在 [Remote FS root]\workspace\ 中。 至少在 Windows 上,似乎事实并非如此。 我正在运行 Jenkins 1.480.3,并通过 jenkins-slave.exe 和 jenkins-slave.xml 在 Windows 节点上运行我的 slaves。 XML 文件和服务参数都没有存储任何路径信息,而 workspace 目录是在 jenkins-slave.exe 的位置创建的,该位置与 http://server/jenkins/computer/node_name/configure 下的 Remote FS root 设置相同。帮助中写道: 一个从机需要有一个专门为Jenkins分配的目录。指定从机上这个工作目录的绝对路径,例如'/var/jenkins'或'c:\jenkins'。这应该是从机本地的路径。(...) 从机不维护重要数据(除了最后构建的项目的活动工作空间),因此您可以将从机工作空间设置为临时目录。这样做的唯一缺点是,如果从机关闭,您可能会失去最新的工作空间。 因此,似乎实际上可以通过Jenkins FS根为从机设置工作空间。 还相关的:https://issues.jenkins-ci.org/browse/JENKINS-12667

1
是的,使用Jenkins FS根目录是可以实现的,这也是其设计初衷。然而,任务会被放到[Remote FS root]\workspace中,而我需要它们在[Remote FS root]中,这意味着我的job1将位于D:\job1而不是D:\workspace\job1 - Stéphane Bruckert
@StéphaneBruckert - 链接的 Jenkins 问题说的也是同样的事情。我猜这是一个有效的情况,不想将其放在 FS 根目录/工作区下。 - Martin Ba
确实。我建议的解决方法现在还不错,尽管我仍然希望有一天能添加这个功能。 - Stéphane Bruckert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,