Différents résultats avec docker run et docker-compose?

Aug 18 2020

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

3 toydarian Aug 18 2020 at 09:29

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.