![运行 docker-compose 时,“volumes‘type’是必需属性”](https://linux22.com/image/1578495/%E8%BF%90%E8%A1%8C%20docker-compose%20%E6%97%B6%EF%BC%8C%E2%80%9Cvolumes%E2%80%98type%E2%80%99%E6%98%AF%E5%BF%85%E9%9C%80%E5%B1%9E%E6%80%A7%E2%80%9D.png)
我正在努力了解 docker-compose.yaml 的工作原理。我试图在 Compose 文件中定义一个卷并将其挂载到本地的挂载点。我尝试运行一个基本的 .yaml 来挂载我的卷:
version: '3.2'
services:
mydb:
image: postgres
volumes:
- db-data:var/lib/postgres/data
ports:
- "5432:5432"
volumes:
- db-data:
- driver: local
但是当我运行时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
我是新手,仍在理解使用 Docker 的所有细微差别。我认为我的问题在于缩进错误,或者我如何使用扩展名调用版本号,但我似乎无法理解错误。
答案1
复合文件对空格敏感(这是 yaml 格式)。复合文件中有两个不同的卷部分,一个卷在缩进的顶层定义,另一个卷在服务中使用。您尝试在服务中定义这两个卷,但第二组卷在定义如何使用卷时定义不正确(它需要目标目录)。以下是您要尝试的操作:
version: '3.2'
services:
mydb:
image: postgres
volumes:
- db-data:var/lib/postgres/data
ports:
- "5432:5432"
volumes:
db-data: