Docker Compose报services Additional property mongodb is not allowed错误如何解决
问题解答
这个输出属于docker-compose配置解析阶段的标准报错。
报错根因
你的docker-compose.yml中存在不可见的零宽空格字符:services下的mongodb服务名前、api服务depends_on配置中引用的mongodb字符串前都携带了该类特殊字符,YAML解析器无法识别,会将带特殊字符的mongodb判定为不符合规则的额外字段,因此抛出该错误。
可行解决方案
第一步:修复配置文件
打开docker-compose.yml,执行两处修改:
- 找到
api服务depends_on下的- 'mongodb'行,删除单引号内的内容后手动重新输入mongodb - 找到
services下的mongodb:行,删除该行开头所有空白字符后,手动输入2个空格(和同级api服务的缩进保持一致),再输入mongodb:
第二步:验证配置有效性
修改完成后在PowerShell中执行docker-compose config,如果无报错且正常输出完整的配置内容,说明配置修复成功,之后再执行docker-compose up -d即可正常启动容器。
第三步:确认热重载生效
你当前配置中已经将本地代码目录挂载到了api容器的/code目录,只要你的后端服务本身开启了热重载能力(比如Node.js项目使用nodemon启动、Java SpringBoot项目开启devtools等),即可实现本地代码变更后容器内服务自动重载,无需每次重新执行build操作。
内容的提问来源于stack exchange,提问作者ru4ert
相关产品推荐
相关产品推荐

