Risultati diversi con docker run e docker-compose?
Sto usando questa immagine per montare un filesystem unionfs. Quando eseguo il container con docker run
, funziona perfettamente, ma quando metto le stesse condizioni docker-compose
, non funziona. Sembra essere un problema con la variabile ambientale (sospetto).
configurazione 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
mi dà questo errore nel contenitore: Failed to open /run/s6/services/unionfs/"/read-write/m/rw"/: No such file or directory. Aborting!
Se eseguo la stessa immagine con 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
quindi il mount unionfs verrà montato correttamente. C'è qualche motivo per cui sta accadendo? Sono entrambi identici, giusto?
Risposte
Il problema qui sono le virgolette, che vengono trattate in modo diverso, quando specifichi le variabili in un file yaml.
Devi scriverlo in questo modo:
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
Fare riferimento anche a questa domanda .
E ho appena trovato questo problema su GitHub.