При создании образа докера я записываю внешнюю базу данных в каталог внутри моего контейнера с помощью 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 каталог пуст. Очень странно, поскольку я восстановил данные в этом каталоге, и я не получил никаких жалоб при выполнении восстановления монго.
Что я пропустил?