Để giải quyết vấn đề này, bạn có thể sử dụng một công cụ như rsync
để di chuyển các tệp db vào thư mục được ánh xạ trong khi Mongo đang chạy. Lỗi cơ bản liên quan đến độ trễ giữa ổ đĩa được ánh xạ của Windows và đường dẫn liên kết đó trong vùng chứa. Giảm tải công việc để rsync tách độ trễ khỏi các yêu cầu thời gian chạy của Mongo.
Ví dụ
Tạo một Dockerfile
cơ bản như thế này:
FROM mongo:latest
RUN apt-get update && \
apt-get install -y \
rsync
ADD init.sh /init.sh
Ở đâu init.sh
là:
#!/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 $!
Sau đó, khi khởi chạy vùng chứa, chỉ cần bắt đầu bằng ./init.sh
là ENTRYPOINT
của bạn .