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

为何执行docker-compose build时出现“Volumes must be mapping”错误?

问题原因与解决方法

你的docker-compose.yml里顶层volumes块的语法写错了,这就是触发“Volumes must be mapping”错误的核心原因。

错误的写法:

volumes:
  - dev-db-data:
  - dev-static-data:

正确的写法:

顶层volumes是用来声明命名卷的,不需要用列表项的短横线-,直接写成键值形式即可:

volumes:
  dev-db-data:
  dev-static-data:

为什么会报错?

Docker Compose里,顶层volumes的语法规则和services内部的卷挂载不同:

  • services里的volumes是挂载列表,所以用-开头的条目;
  • 顶层volumes是命名卷的声明集合,每个卷名直接作为配置项的键,不需要加-。你之前的写法让Compose误以为这是要映射的卷条目,格式不符合要求,因此抛出错误。

另外补充:你services里的卷挂载配置(比如- dev-static-data:/backend/django_static)是完全正确的,不需要修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:20:50