Hasil yang berbeda dengan docker run dan docker-compose?
Saya menggunakan gambar ini untuk memasang filesystem unionfs. Saat saya menjalankan penampung dengan docker run
, itu berfungsi dengan sempurna, tetapi ketika saya menempatkan kondisi yang sama docker-compose
, itu tidak berfungsi. Tampaknya ada masalah dengan variabel lingkungan (saya curiga).
konfigurasi 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
beri saya kesalahan ini di penampung: Failed to open /run/s6/services/unionfs/"/read-write/m/rw"/: No such file or directory. Aborting!
Jika saya menjalankan gambar yang sama dengan 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
maka mount unionfs akan berhasil dipasang. Apakah ada alasan mengapa ini terjadi? Keduanya identik, bukan?
Jawaban
Masalahnya di sini adalah tanda kutip, yang diperlakukan berbeda, saat Anda menentukan variabel dalam file yaml.
Anda perlu menulisnya seperti ini:
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
Lihat pertanyaan ini juga.
Dan saya baru saja menemukan masalah ini di GitHub.