'./docker-compose.yml',service必须是映射,而不是NoneType

cha*_*ang 12 yaml docker docker-compose

当我跑:COMPOSE_PROJECT_NAME=zk_test docker-compose up我说错了

"错误:在文件'./docker-compose.yml'中,服务必须是映射,而不是NoneType."

这是我的yml文件:

version: '2'
services:
zoo1:
image: zookeeper
restart: always
container_name: zoo1
ports:
- "2181:2181"
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

zoo2:
image: zookeeper
restart: always
container_name: zoo2
ports:
- "2182:2181"
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

zoo3:
image: zookeeper
restart: always
container_name: zoo3
ports:
- "2183:2181"
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
Run Code Online (Sandbox Code Playgroud)

示例图片:

示例图像

Ant*_*hon 32

YAML依赖于缩进.这个

services:
zoo1:
Run Code Online (Sandbox Code Playgroud)

是两个映射到两个键的映射null(即None在Python中).

鉴于:

services:
   zoo1:
Run Code Online (Sandbox Code Playgroud)

是嵌套在映射中的映射.关键'服务'的值是带键的映射zoo1(它也有一个值null).

  • 这解决了我的问题。我之前遇到过缩进问题,所以我删除了所有缩进。然后我遇到了另一个问题,这个答案解决了它。谢谢你! (3认同)

小智 9

version: '2'                                                                    
services:                                                                          
  autodiscovery:                                                                   
  build: ./autodiscovery/                                                          
  mem_limit: 128m                                                                  
  expose:                                                                          
    - 53                                                                           
    - 8300                                                                         
    - 8301                                                                         
    - 8302                                                                         
    - 8400                                                                         
    - 8500                                                                         
  ports:                                                                           
    - 8500:8500                                                                    
  dns:                                                                             
    - 127.0.0.1  
Run Code Online (Sandbox Code Playgroud)

只需放一个空格即可。前。