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

Docker run调用中目录路径被转Windows格式的问题排查与修复

Windows11 Git Bash中Docker脚本路径转换问题的修复

问题现象

在Windows11的Git Bash中执行docker-run.sh脚本时,Java应用报错提示源目录不存在,但直接执行docker run命令却能正常运行。从日志可见,脚本执行时容器内的--source-dir和--dest-dir被错误转换为Windows格式路径(如C:/Users/jgagnon/AppData/Local/Temp/inputs),而非预期的容器内Linux路径/tmp/inputs。

原因分析

Git Bash基于MSYS2,默认会将Unix风格的路径自动转换为Windows本地路径。当Docker客户端在Git Bash环境下运行时,会把命令行中以/开头的容器内路径参数(比如/tmp/inputs)误判为本地Windows路径,从而触发转换,导致Java应用收到错误的路径参数。

修复方案

1. 禁用Git Bash路径转换

在执行docker run命令前设置MSYS_NO_PATHCONV=1环境变量,强制禁止路径转换:

修改脚本中的docker run命令行,替换为:

MSYS_NO_PATHCONV=1 docker run -it --rm -v "$source_dir":/tmp/inputs -v "$dest_dir":/tmp/outputs helm-template-scanner --source-dir=/tmp/inputs --dest-dir=/tmp/outputs $output_lists_flag $include_source_flag

2. 优化变量引用(可选)

为避免路径包含空格时出现解析错误,建议给脚本中的路径变量添加双引号包裹:

-v "$source_dir":/tmp/inputs -v "$dest_dir":/tmp/outputs

验证效果

修改脚本后重新执行,查看容器日志,确认--source-dir和--dest-dir显示为容器内的Linux路径(/tmp/inputs、/tmp/outputs),Java应用可正常扫描Helm目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:47:21