借助Docker Compose v1.6.0 +,该docker-compose.yml
文件现在具有新的/版本2文件语法。所做的更改包括一个名为的单独的顶级密钥volumes
。这样就可以将卷定义“集中”在一个地方。
我想做的是在其中命名卷,并在本地主机磁盘上具有单个卷引用多个路径。以下是一个示例,抛出一个以Traceback
结尾的异常
AttributeError: 'list' object has no attribute 'items'
范例docker-compose.yml
:
version: '2'
services:
db:
image: postgres
volumes:
- database:/var/lib/postgres/data
php:
image: php-fpm:5.6
volumes:
- phpconf:/etc/php/conf.d
namedvolume:
container_name: namedvolume
build: ./Docker/Testvolume
volumes:
- ./Docker/Testvolume/shareme
volumes:
database:
- ./Docker/Postgres/db:ro
- ./Docker/Postgres/ini
phpconf:
- ./Docker/PHP-FPM/conf
singledir: ./Docker/foo
completemap: ./Docker/bar:/etc/service/conf.d
- namedvolume:/etc/service/conf.d # < this was a separate attempt w/o the other keys
… ?
到目前为止,我通读了所有Docker Compose文档master
-branch Volume配置参考,Docker Compose文档 Volume / Volume-Driver参考,并浏览了GitHub示例以查找所需的正确语法。似乎没有人正在使用该库(GitHub),并且文档还远远不够完整(docker.com)。我还尝试构建一个单独的卷作为service
,并在中对其进行引用volumes
,但效果并不理想。关于如何使用这种语法的想法应该看起来像什么?