gpt4 book ai didi

docker-compose 不接受我的卷声明

转载 作者:行者123 更新时间:2023-12-02 20:13:12 26 4
gpt4 key购买 nike

我正在尝试使用 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

但我得到的是:错误:在文件“./docker-compose.yml”中,卷必须是映射,而不是数组。

在我看来,这与旧版本的 docker-compose 有关。所以我尝试更新在 MacO 上运行的 docker,但它是最新的。通过检查版本,这就是我得到的:

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

不应该是1.17吗?我不明白。有什么提示吗?

更新

我尝试用键:值列表替换数组:

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)

最佳答案

使用此语法,卷定义应位于使用它的服务内部,请参阅 official documentation

version: "3.2"
services:
web:
image: nginx:alpine
volumes:
- type: volume
source: mydata
target: /data
volume:
nocopy: true
- type: bind
source: ./static
target: /opt/app/static

db:
image: postgres:latest
volumes:
- "/var/run/postgres/postgres.sock:/var/run/postgres/postgres.sock"
- "dbdata:/var/lib/postgresql/data"

volumes:
mydata:
dbdata:

否则,您可以使用特定驱动程序声明卷 like this :

version: "3.2"
volumes:
mydata:
driver: local
driver_opts:
o: uid=500,gid=500

关于docker-compose 不接受我的卷声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45908162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com