Aby obejść ten problem, możesz użyć narzędzia takiego jak rsync
aby przenieść pliki db do zmapowanego katalogu, gdy Mongo jest uruchomiony. Podstawowy błąd ma związek z opóźnieniem między woluminem zamapowanym w systemie Windows a ścieżką powiązania w kontenerze. Przeniesienie pracy na rsync oddziela opóźnienie od wymagań środowiska uruchomieniowego Mongo.
Przykład
Utwórz podstawowy Dockerfile
tak:
FROM mongo:latest
RUN apt-get update && \
apt-get install -y \
rsync
ADD init.sh /init.sh
Gdzie init.sh
jest:
#!/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 $!
Następnie, uruchamiając kontener, po prostu zacznij od ./init.sh
jako Twój ENTRYPOINT
.