Estou usando docker-compose e v3. Estou tentando montar um volume no docker:
./appdata:/appdata
Eu gostaria de ter isso como um volume e, em seguida, fazer referência a esse volume de vários recipientes. A referência de configuração do volume é exibida apenas data-volume:
como um volume nomeado, sem nenhum valor, portanto, não se parece com o acima.
services:
nginx:
build: ./nginx/
ports:
- 80:80
links:
- php
volumes:
- app-volume
php:
build: ./php/
expose:
- 9000
volumes:
- app-volume
volumes:
app-volume: ./appdata:/appdata
Isso me dá:
ERRO: No arquivo './docker-compose.yml', o volume 'app-volume' deve ser um mapeamento, não uma string.
Obviamente, sei que preciso alterar o volumes
par chave / valor, mas não tenho certeza de como alterar isso para que possa compartilhar um volume entre os serviços.
Eu também verifiquei, volumes_from
mas isso efetivamente apenas permite a herança de outros contêineres. Eu vi alguém usar volumes_from
em outro contêiner que contém o mapeamento que eles querem, mas com command: true
definido para que o contêiner nunca seja realmente executado, o que para mim parece um hack.
Como posso fazer isso?
Note, eu não tenho o seguinte trabalho:
nginx:
volumes:
- ./appdata:/appdata
php:
volumes:
- ./appdata:/appdata
Mas isso é apenas duplicação e é algo que espero que um volume nomeado possa me ajudar a evitar :-)