docker run과 docker-compose의 다른 결과는 무엇입니까?

Aug 18 2020

이 이미지를 사용하여 unionfs 파일 시스템을 마운트하고 있습니다. 를 사용하여 컨테이너를 실행하면 docker run완벽하게 작동하지만 동일한 조건을 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 컨테이너에서이 오류를 제공합니다. Failed to open /run/s6/services/unionfs/"/read-write/m/rw"/: No such file or directory. Aborting!

나도 같은 이미지를 실행하는 경우 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

그러면 unionfs 마운트가 성공적으로 마운트됩니다. 이런 일이 발생하는 이유가 있습니까? 둘 다 똑같죠?

답변

3 toydarian Aug 18 2020 at 09:29

여기서 문제는 yaml 파일에서 변수를 지정할 때 다르게 처리되는 따옴표입니다.

다음과 같이 작성해야합니다.

  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

이 질문 도 참조하십시오 .
그리고 방금 GitHub 에서이 문제 를 발견 했습니다 .