For at komme uden om dette, kan du bruge et værktøj som rsync
for at flytte db-filerne til mappet mappe, mens Mongo kører. Den underliggende fejl har at gøre med latens mellem det Windows-kortlagte volumen og den bindingssti i containeren. Aflastning af arbejdet til rsync afkobler latensen fra Mongos kørselskrav.
Eksempel
Opret en grundlæggende Dockerfile
sådan her:
FROM mongo:latest
RUN apt-get update && \
apt-get install -y \
rsync
ADD init.sh /init.sh
Hvor init.sh
er:
#!/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 $!
Derefter, når du starter containeren, skal du bare starte med ./init.sh
som dit ENTRYPOINT
.