Linux容器挂载Windows文件共享报volume 'driver'需为映射而非字符串错误
错误原因
- YAML缩进不符合规范:顶级
volumes配置块中,driver和driver_opts属于filewatchshare卷的子配置项,但你当前配置里这两个字段和filewatchshare平级,被Docker Compose识别为独立的新卷定义,其值为字符串local,不符合卷定义必须为映射对象的语法要求,直接触发报错。 - 存在附加语法问题:
device字段值中使用了HTML转义字符",同时Windows共享路径的反斜杠未做转义,即使缩进修正后也会导致路径解析失败、挂载异常。
修复方案
第一步:调整缩进
将driver、driver_opts整体缩进一层,归属到filewatchshare卷的配置下。
第二步:修正路径格式
把device值中的"替换为正常双引号,同时对路径中的反斜杠做转义处理。
第三步(可选):绑定挂载到容器
你当前只定义了共享卷,没有绑定到任何服务容器,需要在对应服务的volumes字段中补充挂载规则,格式为- filewatchshare:<容器内目标路径>。
修改后的volumes配置块如下:
volumes: filewatchshare: driver: local driver_opts: type: cifs o: username=myuser,password=mypass,rw,domain=mydomain device: "\\\\sharedfolder\\Reports"
修改完成后重新执行docker-compose up -d即可。
内容的提问来源于stack exchange,提问作者BankMan101
相关产品推荐
相关产品推荐

