इससे निजात पाने के लिए, आप rsync
. जैसे टूल का उपयोग कर सकते हैं मोंगो चल रहा है, जबकि डीबी फाइलों को मैप की गई निर्देशिका में ले जाने के लिए। अंतर्निहित बग को विंडोज मैप किए गए वॉल्यूम और कंटेनर के भीतर बाइंड पथ के बीच विलंबता के साथ करना है। कार्य को rsync में उतारने से Mongo की रनटाइम आवश्यकताओं से विलंबता कम हो जाती है।
उदाहरण
एक बुनियादी Dockerfile
बनाएं इस तरह:
FROM mongo:latest
RUN apt-get update && \
apt-get install -y \
rsync
ADD init.sh /init.sh
जहां init.sh
है:
#!/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 $!
फिर, कंटेनर लॉन्च करते समय, बस ./init.sh
से शुरू करें आपके ENTRYPOINT
. के रूप में ।