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

docker-compose报service must be a mapping, not a NoneType错误

错误原因

service must be a mapping, not a NoneType报错由YAML语法不合法导致,解析器无法识别到合法的services映射结构,具体语法问题如下:

  • 顶级配置version: "3.1"与services:写在同一行,YAML为换行、缩进敏感格式,同级配置必须单独占行
  • environment字段下的列表项未换行缩进,直接拼接在environment:关键字后,导致解析器将该字段识别为空值None
  • 两个服务postgres-source、postgres-target未正确换行分隔,缩进层级混乱
  • postgres-target服务下的command配置未单独换行缩进,与前序environment配置挤在同一行,无法被识别为服务子配置
修复方案

将配置文件调整为符合YAML语法的正确缩进、换行格式,修正后的完整配置如下:

version: "3.1"
services:
  postgres-source:
    image: postgres:12.6
    ports:
      - "5439:5432"
    environment:
      - POSTGRES_PASSWORD=postgres
  postgres-target:
    image: postgres:12.6
    ports:
      - "5440:5432"
    environment:
      - POSTGRES_PASSWORD=postgres
    command: [ "postgres", "-c", "wal_level=logical" ]

修改完成后,可以先执行docker-compose config命令做格式预校验,如果命令能正常输出解析后的完整配置结构,说明格式无误,可正常执行启动命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 02:36:27