MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Mongorestore trong Dockerfile

Với sự trợ giúp từ câu trả lời này , Câu trả lời của Marc Young và tài liệu tham khảo Dockerfile mà tôi có thể làm cho điều này hoạt động.

Dockerfile

FROM mongo

COPY dump /home/dump
COPY mongo.sh /home/mongo.sh
RUN chmod 777 /home/mongo.sh

CMD /home/mongo.sh

mongo.sh

#!/bin/bash

# Initialize a mongo data folder and logfile
mkdir -p /data/db
touch /var/log/mongodb.log
chmod 777 /var/log/mongodb.log

# Start mongodb with logging
# --logpath    Without this mongod will output all log information to the standard output.
# --logappend  Ensure mongod appends new entries to the end of the logfile. We create it first so that the below tail always finds something
/entrypoint.sh mongod --logpath /var/log/mongodb.log --logappend &

# Wait until mongo logs that it's ready (or timeout after 60s)
COUNTER=0
grep -q 'waiting for connections on port' /var/log/mongodb.log
while [[ $? -ne 0 && $COUNTER -lt 60 ]] ; do
    sleep 2
    let COUNTER+=2
    echo "Waiting for mongo to initialize... ($COUNTER seconds so far)"
    grep -q 'waiting for connections on port' /var/log/mongodb.log
done

# Restore from dump
mongorestore --drop /home/dump

# Keep container running
tail -f /dev/null


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Giới hạn số lượng giá trị trong một trường bằng cách sử dụng MongoDB

  2. Tải các phần tử không thành công trên máy chủ JS

  3. MongoDB deleteOne ()

  4. Cách lưu trữ một bộ tài liệu có thứ tự trong MongoDB mà không cần sử dụng bộ sưu tập có giới hạn

  5. Mức sử dụng dữ liệu trong bộ đệm của giai đoạn sắp xếp tràn vượt quá giới hạn nội bộ