Linux下Tomcat部署Jenkins修改默认配置目录出错求助
先修正配置文件的引号错误
你在/etc/tomcat9/context.xml中添加的配置用了中文全角引号(”),Tomcat无法识别这种格式,必须替换为英文半角引号(")。修改后的正确配置如下:<Context> ... <Environment name="JENKINS_HOME" value="/var/lib/jenkins" type="java.lang.String" /> </Context>验证systemd配置是否生效
编辑/lib/systemd/system/tomcat9.service后,执行sudo systemctl show tomcat9 | grep ReadWritePaths,确认输出中包含/var/lib/jenkins/。如果没有,检查是否将配置写在了[Service]段内,且未被注释,之后重新执行sudo systemctl daemon-reload && sudo systemctl restart tomcat9。检查SELinux上下文(若系统启用SELinux)
临时关闭SELinux测试:sudo setenforce 0,重启Tomcat后访问Jenkins。如果问题解决,给目标目录设置正确的SELinux上下文:sudo semanage fcontext -a -t tomcat_var_lib_t "/var/lib/jenkins(/.*)?" sudo restorecon -Rv /var/lib/jenkins查看Tomcat日志确认配置加载状态
打开/var/log/tomcat9/catalina.out日志,搜索JENKINS_HOME关键词,确认Tomcat是否读取到了自定义配置。如果无相关记录,可尝试在/var/lib/tomcat9/webapps/jenkins/META-INF/下创建context.xml,写入相同的Environment配置(单个应用的context.xml优先级高于全局配置)。确认Tomcat运行用户权限
执行ps aux | grep tomcat确认Tomcat的运行用户为tomcat,再检查目录权限:ls -ld /var/lib/jenkins确保所有者和组为
tomcat:tomcat,权限至少为drwxr-xr-x(755)。
内容的提问来源于stack exchange,提问作者Coban-anticapitalista

