Différents résultats avec docker run et docker-compose?
J'utilise cette image pour monter un système de fichiers unionfs. Lorsque j'exécute le conteneur avec docker run
, cela fonctionne parfaitement, mais lorsque je mets les mêmes conditions docker-compose
, cela ne fonctionne pas. Cela semble être un problème avec la variable environnementale (je suppose).
configuration de docker-compose:
unionfs:
container_name: unionfs
image: meyay/unionfs-mount:alpha
environment:
- TZ=Europe/Berlin
- PUID=1000
- GUID=1000
- READ_ONLY_DIR="/read-only/m/ro"
- READ_WRITE_DIR="/read-write/m/rw"
privileged: true
volumes:
- /home/ubuntu/sshfs:/read-write:slave
- /mnt/gdrive:/read-only:slave
- /mnt/unionfs/tvs:/merged:shared
docker-compose up
me donne cette erreur dans le conteneur: Failed to open /run/s6/services/unionfs/"/read-write/m/rw"/: No such file or directory. Aborting!
Si je lance la même image avec docker run
:
docker run --rm \
--name unionfs \
-e TZ="Europe/Berlin" \
-e PUID=1000 \
-e GUID=1000 \
-e READ_ONLY_DIR="/read-only/m/ro" \
-e READ_WRITE_DIR="/read-write/m/rw" \
--privileged \
-v /home/ubuntu/sshfs:/read-write:slave \
-v /mnt/gdrive:/read-only:slave \
-v /mnt/unionfs/tvs:/merged:shared \
meyay/unionfs-mount:alpha
alors le montage unionfs sera monté avec succès. Y a-t-il une raison pour laquelle cela se produit? Ils sont tous les deux identiques, non?
Réponses
Le problème ici sont les guillemets, qui sont traités différemment, lorsque vous spécifiez les variables dans un fichier yaml.
Vous devez l'écrire comme ceci:
unionfs:
container_name: unionfs
image: meyay/unionfs-mount:alpha
environment:
- TZ=Europe/Berlin
- PUID=1000
- GUID=1000
- "READ_ONLY_DIR=/read-only/m/ro"
- "READ_WRITE_DIR=/read-write/m/rw"
privileged: true
volumes:
- /home/ubuntu/sshfs:/read-write:slave
- /mnt/gdrive:/read-only:slave
- /mnt/unionfs/tvs:/merged:shared
Reportez-vous également à cette question .
Et je viens de trouver ce problème sur GitHub.