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

Windows下Jenkins+Docker运行Maven容器报错,求解决方案

解决Jenkins在Windows上使用Linux Docker容器时工作目录无效的问题

这个报错的核心原因其实很好理解:你的Jenkins跑在Windows 10上,默认工作目录是Windows风格的绝对路径(比如C:\Users\c.c\.jenkins\workspace\...),但你用的是Linux Docker容器——Linux容器内部只认类Unix风格的绝对路径(以/开头),Docker daemon自然会拒绝这种跨系统的路径格式。

下面给你几个可行的解决办法,按优先级推荐:

1. 直接在Jenkinsfile里指定容器工作目录

最简单的方式是在Docker agent配置中添加args参数,手动映射Windows工作目录到容器内的Linux路径,并指定容器的工作目录:

pipeline {
    agent {
        docker {
            image 'maven:3.3.3'
            // 把Jenkins的Windows工作目录挂载到容器内的/usr/src/mymaven,同时设为工作目录
            args '-v ${WORKSPACE}:/usr/src/mymaven -w /usr/src/mymaven'
        }
    }
    stages {
        stage('build') {
            steps {
                sh 'mvn --version'
            }
        }
    }
}

这样容器内的命令会在/usr/src/mymaven下执行,完全符合Linux路径要求,同时能访问到Jenkins工作目录里的代码。

2. 把Jenkins工作目录迁移到WSL文件系统

如果你已经装了WSL(Windows子系统Linux),可以彻底解决路径兼容问题:

  • 先停止Jenkins服务(打开Windows服务列表,找到Jenkins右键停止)
  • 把原工作目录C:\Users\c.c\.jenkins\workspace下的所有内容复制到WSL的路径里,比如/home/你的用户名/jenkins-workspace
  • 找到Jenkins的配置文件C:\Program Files\Jenkins\jenkins.xml,修改<arguments>里的-Djenkins.workspace参数(如果没有就添加),路径写成Windows能识别的WSL格式,比如\\wsl$\Ubuntu\home\你的用户名\jenkins-workspace
  • 重启Jenkins服务

之后Jenkins的工作目录就变成了Linux原生路径,Docker Linux容器就能直接识别,不用再做额外映射。

3. 检查Docker Desktop的文件共享设置

有时候是Docker没权限访问Windows的工作目录:

  • 打开Docker Desktop的设置,进入Resources > File Sharing
  • 勾选Jenkins工作目录所在的磁盘(比如C盘),点击「Apply & Restart」
  • 重启Docker后再跑流水线,应该就能正常映射路径了

如果你的Docker Desktop版本比较新,建议开启WSL集成模式,这样跨系统路径的兼容性会更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:55:11