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

Windows下Git Bash配置Jekyll Docker别名遇路径错误求助

问题描述

在Windows主机的Git Bash中,希望创建Jekyll别名,通过运行jekyll/jekyll:stable镜像替代本地安装所有依赖,同时用Docker卷存储gems。配置的别名如下:

alias jekyll='winpty docker run --rm --volume=$PWD:/srv/jekyll --mount type=volume,src=gems,dst=/usr/gem,volume-driver=local -it jekyll/jekyll:stable'

执行jekyll命令后出现错误:

docker: Error response from daemon: invalid mount config for type "volume": invalid mount path: 'C:/Program Files/Git/usr/gem' mount path must be absolute. See 'docker run --help'.

明明尝试挂载的是Docker卷而非绑定挂载,使用-v语法也得到相同结果,怀疑Docker误将gems当作目录绑定挂载。用set -x调试后,实际执行的命令看起来正常:

winpty docker run --rm --volume=/h/:/srv/jekyll --mount type=volume,src=gems,dst=/usr/gem,volume-driver=local -it jekyll/jekyll:stable

后续发现问题核心:容器内的/usr目标路径被Git Bash错误转换为C:/Program Files/Git/usr/gem,需要让命令中的/usr/作为字面量传递。

解决方法

Git Bash会自动将以单个/开头的路径转换为Git安装目录下的对应路径(比如/usr转成C:/Program Files/Git/usr),要避免这种转换,有两种可行的修改方式:

  1. 给容器内路径添加双斜杠转义
alias jekyll='winpty docker run --rm --volume=$PWD:/srv/jekyll --mount type=volume,src=gems,dst=//usr/gem,volume-driver=local -it jekyll/jekyll:stable'

将/usr/gem改为//usr/gem,双斜杠会让Git Bash识别这是容器内的绝对路径,不再进行本地路径转换。

  1. 用转义单引号包裹--mount参数
alias jekyll='winpty docker run --rm --volume=$PWD:/srv/jekyll '\''--mount type=volume,src=gems,dst=/usr/gem,volume-driver=local'\'' -it jekyll/jekyll:stable'

单引号会阻止Git Bash对内部路径进行转换,别名定义中需要用转义单引号来包裹整个--mount参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:06:02