Quel est le docker-compose.yml
syntaxe pour spécifier le chemin d'hôte d'un volume nommé?
volumes:
myvolume: # how do I specify path here?
othervolume:
services: # etc...
J'ai vérifié le docs , mais je ne le trouve pas. Honnêtement, je ne sais pas comment quelqu'un utilise ce genre de choses.
Le scénario courant avec les volumes de composition consiste à utiliser le volume nommé par défaut qui correspond au pilote de volume local et place les volumes dans/var/lib/docker/volumes. Ce n'est pas ce que vous recherchez, mais c'est l'option facile pour beaucoup:
version: '3'
volumes:
myvolume:
othervolume:
services:
myservice:
volumes:
- myvolume:/volume/path
La méthode courante pour mapper un volume hôte est de spécifier directement le chemin, aucun nom n'est requis sur le volume. Encore une fois, ce n'est pas ce que vous demandez, mais c'est très facile à mettre en œuvre. Il s'agit d'un support de fixation sous les couvertures:
version: '3'
services:
myservice:
volumes:
- ./path:/volume/path
Si vous voulez un volume nommé et un volume hôte ensemble, ce que vous recherchez est un volume nommé configuré pour utiliser un montage de liaison. Cela a l'inconvénient d'échouer si le répertoire ne préexiste pas, mais a l'avantage que docker peut initier un répertoire vide au contenu de l'image.
version: '3'
volumes:
myvolume:
driver: local
driver_opts:
type: none
o: bind
device: /Host/path/to/volume
services:
myservice:
volumes:
- myvolume:/container/volume/path
Remarque, l'inconvénient des montages de liaison est qu'il place les fichiers gérés par des conteneurs, avec l'uid/gid du conteneur, à l'intérieur d'un chemin probablement utilisé par d'autres utilisateurs sur l'hôte, souvent avec un uid/gid différent sur l'hôte. Le résultat est des problèmes d'autorisation sur l'hôte ou à l'intérieur du conteneur. Vous devez aligner les uid/gid entre les deux pour éviter cela.
Dans les mêmes documents de référence, vous pouvez vérifier la version complète développée de l'exemple docker-compose.yml
https://docs.docker.com/compose/compose-file/#compose-file-structure-and-examples
Voir la section db pour le montage de volume nommé.
db:
image: postgres:9.4
volumes:
- db-data:/var/lib/postgresql/data
networks:
- backend
deploy:
placement:
constraints: [node.role == manager]