为什么服务不是docker compose文件中的列表

为什么服务不是docker compose文件中的列表,docker,automation,yaml,Docker,Automation,Yaml,我正在学习和测试yaml的docker。我创建了一个简单的docker-compose.yml文件,如下所示: version: "3" services: redis: image: redis click-counter: image: kodekloud/click-counter ports: - 8080:5000 links: - red

我正在学习和测试yaml的docker。我创建了一个简单的docker-compose.yml文件,如下所示:

version: "3"
services:
     redis:
        image: redis

     click-counter:
        image: kodekloud/click-counter

        ports:
        -   8080:5000
        links:
        -   redis:redis
我的问题:服务是否在选项服务列表下(redis并单击计数器)。然后加上破折号应该可以,但不起作用

version: "3"
services:
     - redis:
        image: redis

     - click-counter:
        image: kodekloud/click-counter

        ports:
        -   8080:5000
        links:
        -   redis:redis
这会在终端中引发以下错误:

RROR: In file './docker-compose.yml', service must be a mapping, not an array.

在这方面可以提供任何帮助。

服务
是Docker Compose YAML定义中的一个映射。它不允许强制执行重复的服务

当您在每个服务的名称前面添加
-
时,
服务
将是一个YAML定义的列表。因此,这并不是Docker所期望的

您拥有的第一个
docker compose
文件具有定义
服务的正确格式

version: "3"
services:
  redis:
    ...

  click-counter:
    ...