Jenkins报错:jenkins.model.InvalidBuildsDir: ${ITEM_ROOTDIR}/builds不存在且可能无法创建。

21

我在Ubuntu上使用apt命令行更新了Jenkins,更新后立即运行sudo apt upgrade jenkins,现在出现以下情况:

jenkins.model.InvalidBuildsDir: ${ITEM_ROOTDIR}/builds does not exist and 
probably cannot be created
at jenkins.model.Jenkins.checkRawBuildsDir(Jenkins.java:3085)
at jenkins.model.Jenkins.loadConfig(Jenkins.java:3009)
Caused: java.io.IOException
at jenkins.model.Jenkins.loadConfig(Jenkins.java:3012)
at jenkins.model.Jenkins.access$1200(Jenkins.java:304)
at jenkins.model.Jenkins$14.run(Jenkins.java:3104)
at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run 
(TaskGraphBuilder.java:169)
at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296)
at jenkins.model.Jenkins$5.runTask(Jenkins.java:1068)
at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214)
at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
at java.util.concurrent.ThreadPoolExecutor.runWorker
(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused: org.jvnet.hudson.reactor.ReactorException
at org.jvnet.hudson.reactor.Reactor.execute(Reactor.java:282)
at jenkins.InitReactorRunner.run(InitReactorRunner.java:48)
at jenkins.model.Jenkins.executeReactor(Jenkins.java:1102)
at jenkins.model.Jenkins.<init>(Jenkins.java:904)
at hudson.model.Hudson.<init>(Hudson.java:85)
at hudson.model.Hudson.<init>(Hudson.java:81)
at hudson.WebAppMain$3.run(WebAppMain.java:233)
Caused: hudson.util.HudsonFailedToLoad
at hudson.WebAppMain$3.run(WebAppMain.java:250)

我尝试使用仅config.xml和/jobs来创建存储Jenkins备份的系统。但是,当尝试替换这些文件以从备份中恢复时,会抛出完全相同的错误。有什么解决办法吗? - Drubio
没有找到任何解决方案,我只能重新安装Jenkins。 - chandra
2个回答

29

刚刚找到了解决方案。更新后,Jenkins的主目录里有一堆文件,拥有者是ubuntujenkins,我只需将所有这些文件的所有权都改回给jenkins

sudo chown -R jenkins:jenkins $JENKINS_HOME

3
仅补充一点,在Ubuntu中,您的$JENKINS_HOME目录通常位于/var/lib/jenkins,因此您也可以运行命令sudo chown -R jenkins:jenkins /var/lib/jenkins - Promise Preston

17

$JENKINS_HOME/jobs目录的权限或所有权设置不正确时,我曾经遇到过这种情况。在我的具体情况下,我通过rsync将任务同步到测试服务器上,并忘记更新文件所有权以匹配Jenkins在测试系统上运行的用户。更改所有权为正确的用户解决了此问题。

可能有许多原因导致出现此错误,但我建议首先检查$JENKINS_HOME下的文件和目录,以验证运行Jenkins进程的用户是否可以对它们进行读写操作。


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