You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins设置ALLOW_LOCAL_CHECKOUT后仍报Git本地检出错误

Jenkins Git本地检出配置放行后仍报错的排查与解决

核心报错信息

ERROR: Checkout of Git remote '<path to project folder>' aborted
because it references a local directory, which may be insecure.
You can allow local checkouts anyway by setting the system property
'hudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT' to true.

问题根因说明

在Jenkins脚本控制台执行System.setProperty("hudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT", "true")属于临时内存级配置,仅在当前主节点控制台会话上下文生效,既不会持久化保存,也不会同步到执行任务的Agent节点,Jenkins重启后配置会直接丢失,因此大概率出现配置后仍报错的情况。

可行排查与解决方向

  • 优先做配置有效性校验
    重启服务后分别在主节点、对应任务运行的Agent节点的脚本控制台上下文里,执行System.getProperty("hudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT"),如果返回值不是true,说明配置根本没有被对应节点的JVM加载。
  • 永久配置JVM启动参数(推荐方案)
    给所有参与任务执行的节点(主节点+所有Agent节点)统一添加JVM启动参数,从JVM启动阶段就加载该配置:
    • Systemd/包管理器安装的Jenkins:编辑服务配置文件,在JENKINS_JAVA_OPTIONS或JAVA_OPTS配置项末尾追加-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true,重载systemd配置后重启Jenkins服务
    • War包直接启动的Jenkins:在启动命令中加入参数,示例:java -Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true -jar jenkins.war
    • Docker部署的Jenkins主/从节点:启动容器时传入环境变量JAVA_OPTS=-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true
      所有节点配置完成后,重启对应节点服务再执行任务验证。
  • 排查Git插件版本问题
    4.11.0以下版本的Git插件存在该系统属性的读取逻辑缺陷,即使正确配置参数也无法被识别,升级Git插件到4.11.0以上的稳定版本后,重新配置参数重启即可。
  • 测试环境临时绕过方案
    本地测试场景下,可以将本地代码目录初始化为裸Git仓库,使用完整的file://协议路径作为仓库地址,可临时绕过本地目录校验,该方案存在安全风险,禁止在生产环境使用。

内容的提问来源于stack exchange,提问作者AFTAB MANNAN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 21:27:20