MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да създадете изображение на Mongo Docker с колекции и данни по подразбиране?

Проблемът беше, че информацията не може да бъде запазена в /db/data , така че създадох решение, създаващо моя собствена директория с данни.

# Parent Dockerfile https://github.com/docker-library/mongo/blob/982328582c74dd2f0a9c8c77b84006f291f974c3/3.0/Dockerfile
FROM mongo:latest

# Modify child mongo to use /data/db2 as dbpath (because /data/db wont persist the build)
RUN mkdir -p /data/db2 \
    && echo "dbpath = /data/db2" > /etc/mongodb.conf \
    && chown -R mongodb:mongodb /data/db2

COPY . /data/db2

RUN mongod --fork --logpath /var/log/mongodb.log --dbpath /data/db2 --smallfiles \
    && CREATE_FILES=/data/db2/scripts/*-create.js \
    && for f in $CREATE_FILES; do mongo 127.0.0.1:27017 $f; done \
    && INSERT_FILES=/data/db2/scripts/*-insert.js \
    && for f in $INSERT_FILES; do mongo 127.0.0.1:27017 $f; done \
    && mongod --dbpath /data/db2 --shutdown \
    && chown -R mongodb /data/db2

# Make the new dir a VOLUME to persists it 
VOLUME /data/db2

CMD ["mongod", "--config", "/etc/mongodb.conf", "--smallfiles"]

Благодарение на @yosifkit от проекта docker-library/mongo Github, че посочи, че обемът ще съхранява данните в полученото изображение. Това го пропуснах в документацията.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongooseError [MongooseServerSelectionError]:връзката <монитор> към 52.6.250.237:27017 затворена

  2. Свързване с MongoDB Atlas с помощта на Golang mgo:Постоянен няма достъпен сървър за набор от реплика

  3. Уникалният индекс в mongoose не работи

  4. Пролетна сесия с MongoDB

  5. Заявка на MongoDB с elemMatch за вложени данни от масив