Untuk menyiasatinya, Anda dapat menggunakan alat seperti rsync
untuk memindahkan file db ke direktori yang dipetakan saat Mongo sedang berjalan. Bug yang mendasarinya berkaitan dengan latensi antara volume yang dipetakan Windows dan jalur pengikatan di dalam wadah. Membongkar pekerjaan ke rsync akan memisahkan latensi dari persyaratan runtime Mongo.
Contoh
Buat Dockerfile
dasar seperti ini:
FROM mongo:latest
RUN apt-get update && \
apt-get install -y \
rsync
ADD init.sh /init.sh
Dimana init.sh
adalah:
#!/bin/bash
migrate_db() {
while true
do
rsync -avh /data/db/* /data/mapped-db
sleep 5
done
}
migrate_db &
#Execute a command
mongod --smallfiles --logpath=/dev/null --verbose &
#Wait
wait $!
Kemudian, saat meluncurkan wadah, mulailah dengan ./init.sh
sebagai ENTRYPOINT
. Anda .