docker撰写不接受我的卷宣言

我正在尝试使用docker-compose。 我从docker文档复制一个例子开始:

version: '3' services: web: image: nginx:alpine ports: - "80:80" networks: webnet: volumes: - type: volume source: mydata target: /data volume: nocopy: true - type: bind source: ./static target: /opt/app/static 

但我得到的是: ERROR: In file './docker-compose.yml', volume must be a mapping, not an array.

它在我看来是一个老版本的docker-compose。 所以我试图更新我在MacOs上运行的Docker,但是它是最新的。 通过检查版本,这是我得到:

 Matteos-MacBook-Pro-2:chateo matteo$ docker-compose -v docker-compose version 1.14.0, build c7bdf9e 

不应该是1.17吗? 我不明白。 任何提示?

更新

我试着用一个键值列表replace数组:

 volumes: mydata: type: volume source: mydata target: /data volume: nocopy: true static: type: bind source: ./static target: /opt/app/static 

但是我得到的是以下内容:

 Matteos-MacBook-Pro-2:chateo matteo$ docker-compose build ERROR: The Compose file './docker-compose.yml' is invalid because: volumes.static value Additional properties are not allowed ('source', 'type', 'target' were unexpected) volumes.mydata value Additional properties are not allowed ('volume', 'source', 'type', 'target' were unexpected) 

尝试将volumes定义更改为如下所示:

 volumes: mydata: type: volume source: mydata target: /data volume: nocopy: true static: type: bind source: ./static target: /opt/app/static 

我可能是错的,但卷不能arrays。