'/docker compose.yml';,服务必须是映射,而不是非类型

'/docker compose.yml';,服务必须是映射,而不是非类型,docker,yaml,docker-compose,Docker,Yaml,Docker Compose,当我运行:COMPOSE\u PROJECT\u NAME=zk\u test docker COMPOSE up时,我得到一个错误消息 错误:在文件“./docker compose.yml”中,服务必须是映射,而不是 一个非典型的人 这是我的yml文件: version: '2' services: zoo1: image: zookeeper restart: always container_name: zoo1 ports: - "2181:2181" environment: ZOO

当我运行:
COMPOSE\u PROJECT\u NAME=zk\u test docker COMPOSE up
时,我得到一个错误消息

错误:在文件“./docker compose.yml”中,服务必须是映射,而不是 一个非典型的人

这是我的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
示例图像:


YAML取决于缩进。这个

services:
zoo1:
是一个具有两个键的映射,这两个键都映射到
null
(即Python中的
None

鉴于:

services:
   zoo1:
是嵌套在映射中的映射。键“services”的值映射为键
zoo1
(该键的值同样为
null
)。

版本:“2”
服务:
自动发现:
内部版本:./autodiscovery/
内存限制:128m
揭露:
- 53                                                                           
- 8300                                                                         
- 8301                                                                         
- 8302                                                                         
- 8400                                                                         
- 8500                                                                         
端口:
- 8500:8500                                                                    
域名系统:
- 127.0.0.1  

只要放一个空格。以前。

如果没有格式正确的问题,很难回答撰写文件无法工作的原因。我能够从中获取示例,并毫无问题地进行设置。这解决了我的问题。我以前在缩进方面有问题,所以我去掉了所有的缩进。然后我遇到了另一个问题,这个答案解决了它。非常感谢。