¿Resultados diferentes con docker run y docker-compose?
Estoy usando esta imagen para montar un sistema de archivos unionfs. Cuando ejecuto el contenedor con docker run
, funciona perfectamente, pero cuando pongo las mismas condiciones docker-compose
, no funciona. Parece ser un problema con la variable ambiental (sospecho).
configuración 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 da este error en el contenedor: Failed to open /run/s6/services/unionfs/"/read-write/m/rw"/: No such file or directory. Aborting!
Si ejecuto la misma imagen 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
entonces el montaje de unionfs se montará correctamente. ¿Hay alguna razón por la que está sucediendo esto? Ambos son idénticos, ¿verdad?
Respuestas
El problema aquí son las comillas, que se tratan de manera diferente, ya que especifica las variables en un archivo yaml.
Tienes que escribirlo así:
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
Consulte también esta pregunta .
Y acabo de encontrar este problema en GitHub.