运行 docker-compose 时,“volumes 'type' 是必需的属性”

use*_*979 8 bash container docker yaml

我正在了解 docker-compose.yaml 的工作原理。我正在尝试在撰写文件中定义一个卷并将其挂载在本地的挂载点。我尝试运行一个基本的 .yaml 来挂载我的卷:

version: '3.2'
services:
      mydb:
        image: postgres
        volumes:
          - db-data:var/lib/postgres/data
        ports:
          - "5432:5432"
        volumes:
          - db-data:
          - driver: local
Run Code Online (Sandbox Code Playgroud)

但是当我运行时docker-compose down,我收到一个错误:

$ docker-compose down
The Compose file '.\docker-compose.yml' is invalid because:
services.mydb.volumes 'type' is a required property
services.mydb.volumes 'type' is a required property
Run Code Online (Sandbox Code Playgroud)

我对此很陌生,并且仍然了解使用 Docker 的所有细微差别。我认为我的问题是缩进错误或我如何使用扩展名调用版本号,但我似乎无法理解错误。

BMi*_*tch 12

撰写文件对空格敏感(这是 yaml 格式)。撰写文件中有两个不同的卷部分,一个是在缩进的顶层定义的卷,另一个是在服务中使用的卷。您已尝试在服务中定义这两个卷,但第二组卷的定义不正确,无法定义如何使用卷(它需要在那里有一个目标目录)。以下是您想要尝试的内容:

version: '3.2'
services:
      mydb:
        image: postgres
        volumes:
          - db-data:var/lib/postgres/data
        ports:
          - "5432:5432"
volumes:
  db-data:
Run Code Online (Sandbox Code Playgroud)