With Docker Compose v1.6.0+, there now is a new/version 2 file syntax for the docker-compose.yml
file. The changes include a separate top level key named volumes
. This allows to "centralize" volume definitions in one place.
What I am trying to do is to name volumes in there and have a single volume reference multiple path on my local host disk. The following is an example, throwing an exception with a Traceback
that ends with
AttributeError: 'list' object has no attribute 'items'
Example 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
… ?
So far I read through all the Docker Compose docs master
-branch Volume configuration reference, the Docker Compose docs Volume/Volume-Driver reference and looked through GitHub examples to find the correct syntax that is expected. It seems no one is already using that (GitHub) and the documentation is far from being complete (docker.com). I also tried to build a separate volume as service
and reference it in volumes
, but that does not work as well. Any idea on how to this syntax is supposed to look like?