Я должен создать изображение монго с некоторой коллекцией по умолчанию и данными.Я могу создать изображение монго с этими данными, перейдя по следующей ссылке: -
Как создать образ монококера с коллекциями и данными по умолчанию?
, поэтому, когдаЯ запускаю контейнер, я получаю данные по умолчанию.Теперь, когда я использую приложение, и генерируются некоторые дополнительные данные (путем вызова API), которые снова сохраняются в mongodb с данными по умолчанию.
Теперь по какой-то причине, если докер-контейнер перезапускается, к сожалению, все выполняется-время созданных данных больше нет и остаются только данные по умолчанию.Хотя я сохраняю данные с использованием томов.
Итак, как сохранить данные времени выполнения и данные по умолчанию при каждом перезапуске докера?Я использую следующий файл docker и файл docker-compose
Dockerfile:
FROM mongo
####### working isnerting data $##########
# 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 \
&& mongo 127.0.0.1:27017/usaa /data/db2/config-mongo.js \
&& 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"]
и часть docker-compose.yml
services:
mongo:
build: ./mongodb
image: "mongo:1.2"
container_name: "mongo"
ports:
- "27017:27017"
volumes:
- ${LOCAL_DIRECTORY}:/data/db2
networks:
- some-network
Причина может быть,путем перестройки образа docker в его каталог / data / db2 создаются только данные по умолчанию, определенные в файле .js.Но не уверен.
Пожалуйста, исправьте меня в том, что я делаю неправильно, или предложите новый способ решения этой проблемы.
Большое спасибо!