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

Windows10下Git Bash运行Docker同步S3失败求助

Docker Mount Denied: Source Path "C:/projects/docker;C" Doesn't Exist (Windows 10, Git Bash)

问题根源

这是Git Bash与Docker for Windows在路径解析上的典型兼容性问题。当你在Git Bash中使用$PWD时,它会将Unix风格的路径转换为Windows格式,但过程中可能意外混入了环境变量中的字符(比如错误里的;C大概率来自系统PATH变量的内容),导致Docker识别到一个拼接错误的路径C:/projects/docker;C,而非你实际存在的C:/projects/docker。

可行解决方案

下面是三种可以快速修复这个问题的方法:

1. 用pwd -W输出正确的Windows格式路径

修改挂载参数为-v "$(pwd -W)":/data,这会让Git Bash输出Windows原生的相对路径,Docker会自动补全盘符信息,形成正确的挂载路径。完整脚本如下:

docker container run \
--env AWS_ACCESS_KEY_ID=aaaaaaa \
--env AWS_SECRET_ACCESS_KEY=bbbbbbb \
-v "$(pwd -W)":/data \
garland/aws-cli-docker \
aws s3 sync . s3://www.typing-coacher.net

2. 手动指定完整的Windows绝对路径

直接跳过环境变量解析,手动写入你确认存在的路径,这是最直观且不容易出错的方式:

docker container run \
--env AWS_ACCESS_KEY_ID=aaaaaaa \
--env AWS_SECRET_ACCESS_KEY=bbbbbbb \
-v "C:/projects/docker":/data \
garland/aws-cli-docker \
aws s3 sync . s3://www.typing-coacher.net

3. 使用Docker兼容的Unix风格路径

Docker for Windows支持Unix风格的盘符写法(用/c/替代C:/),这种格式在Git Bash中不会被错误解析,Docker能直接识别:

docker container run \
--env AWS_ACCESS_KEY_ID=aaaaaaa \
--env AWS_SECRET_ACCESS_KEY=bbbbbbb \
-v "/c/projects/docker":/data \
garland/aws-cli-docker \
aws s3 sync . s3://www.typing-coacher.net

小提示

执行脚本前,你可以先在Git Bash里运行echo "$(pwd -W)"或者echo $PWD,确认输出的路径是否符合预期,再替换到Docker命令中,避免再次出现路径解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:25:47