Как сохранить восстановленную базу данных в моем контейнере, чтобы ее можно было использовать повторно - PullRequest
0 голосов
/ 03 октября 2019

При создании образа докера я записываю внешнюю базу данных в каталог внутри моего контейнера с помощью mongodump, затем запускаю mongodb и выполняю восстановление (mongorestore). Кажется, все работает нормально при просмотре журнала. Моя цель - доставить данные базы данных, связанные с данными, в базу данных, которая может быть запущена с предварительно заполненными данными. Таким образом, мой конечный пользователь может «играть» с ним вместе с веб-приложением. Обратите внимание, что мне интересно, может ли веб-приложение обновить эти данные? Потеря данных после остановки контейнера не является проблемой в моем случае использования.

Здесь полный файл dockerfile

FROM mongo

RUN mongodump --verbose --uri="mongodb://....."  --out=./izidump2

RUN mongod --fork --dbpath /data/db --logpath /var/log/mongodb.log;  \
     mongorestore --uri="mongodb://localhost:27017/mydb" --verbose ./izidump2;  \
     mongo --eval "db.createUser({ user: 'root', pwd: 'root', roles: ['readWrite', 'dbAdmin'] })" mydb;

К сожалению, при запуске контейнера БД не существует. При подключении к экземпляру работающего контейнера и переходу в / data / db каталог пуст. Очень странно, поскольку я восстановил данные в этом каталоге, и я не получил никаких жалоб при выполнении восстановления монго.

Что я пропустил?

...