我想定义一个通用挂载卷 - 以及我想让它关联的所有选项 - 可以在多个服务中重用。事实上,我正在开发一个项目,该项目对多个微服务使用相同的源。这样,卷将更易于管理和修改。
首先,我使用了利用了volumes_from
以下优点的旧方法:
shared:
image: phusion/baseimage
volumes:
- ./code:/var/www/html
nginx:
build: docker/nginx
ports:
- "8080:80"
links:
- php
volumes_from:
- shared
这有效,但我必须定义一个shared
服务才能使其工作。从 3.0 版本开始,volumes
可以使用,所以我想定义一个通用卷并将其用于我的nginx
服务,但我没有找到正确的语法:
version: '3.3'
volumes:
vol_test:
type: bind
source: ./code
target: /var/www/html
volume:
nocopy: true
services:
nginx:
build: docker/nginx
ports:
- "8080:80"
volumes:
- vol_test
我发现以我想要的方式定义卷是不可能的,因为以下定义:
volumes:
data-volume:
type: bind
source: ./code
target: /var/www/html
volume:
nocopy: true
调用时将产生此输出docker-compose up
:
ERROR: The Compose file './docker-compose.yml' is invalid because:
volumes.data-volume value Additional properties are not allowed ('volume', 'source', 'type', 'target' were unexpected)
我想我还是得用那个volumes_from
方式。有人可以证实吗?
我可以确认您的观察:如果要挂载主机目录,则必须使用绑定挂载语法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句