docker compose错误:需要卷而不是字符串

docker compose错误:需要卷而不是字符串,docker,docker-compose,Docker,Docker Compose,我开始学习docker,我想使用docker compose文件运行nextcloud 我正在使用的docker compose文件。我只指定了我创建的文件夹卷 version: ‘2’ volumes: nextcloud:/home/ahmed/Desktop/docker-storage/nextcloud db:/home/ahmed/Desktop/docker-storage/db services: db: image: mariadb restart: always volu

我开始学习docker,我想使用docker compose文件运行nextcloud

我正在使用的docker compose文件。我只指定了我创建的文件夹卷

version: ‘2’

volumes:
nextcloud:/home/ahmed/Desktop/docker-storage/nextcloud
db:/home/ahmed/Desktop/docker-storage/db

services:
db:
image: mariadb
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD= anha1985
- MYSQL_PASSWORD= anha1985
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud

app:
image: nextcloud
ports:
- 8080:80
links:
- db
volumes:
- nextcloud:/var/www/html
restart: always
我收到的错误消息是。 错误:在文件“./docker compose.yml”中,卷必须是映射,而不是字符串


请告诉我。

撰写文件顶部的卷部分用于定义命名卷。如果只有具有绝对路径或相对路径的主机卷,则只能在每个服务中定义卷。对于命名卷,您可以在顶层和需要访问命名卷的每个服务中定义它。这两个部分虽然名称相似,但语法不同

有关yml文件顶层的卷部分,请参阅本文档:


本文档适用于每个服务中的卷部分:

/nextcloud:请详细解释。我应该在哪里做这件事呢?我想@BugHunter是说卷语法要求冒号的左边必须是绝对路径。yml文件语法对换行符和空格敏感。请使用代码格式编辑您的问题,使其包含与您拥有的文件完全相同的缩进。