У меня проблема с MongoDB.Я предоставляю файл config.js
- docker-entrypoint-initdb.d
в моем файле docker-compose
:
mongo:
image: mongo:latest
restart: always
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
MONGO_INITDB_DATABASE: dev
volumes:
- ./config.js:/docker-entrypoint-initdb.d/config.js
- mongodbdata:/data/db
Файл config.js
выглядит следующим образом:
db.auth('root', 'example');
db = db.getSiblingDB('dev');
db.approver.insert({"email":"some@email.com,"approverType":"APPROVER"});
db.approver.insert({"email":"someother@email.com","approverType":"ACCOUNTANCY"});
Когда я запускаю docker-compose up -d
в первый раз все нормально, две записи вставляются в базу данных.
Но затем я хочу добавить запись trird и воссоздать контейнер:
db.auth('root', 'example');
db = db.getSiblingDB('dev');
db.approver.insert({"email":"some@email.com,"approverType":"APPROVER"});
db.approver.insert({"email":"someother@email.com","approverType":"ACCOUNTANCY"});
db.approver.insert({"email":"another@email.com","approverType":"ACCOUNTANCY"});
Я бегу docker-compose up -d --force-recreate --no-deps mongo
ничего не происходит.Контейнер воссоздается, но третьей записи там нет.
Выполнение docker exec -it dev_mongo_1 mongo docker-entrypoint-initdb.d/config.js
возвращает:
MongoDB shell version v4.0.10
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("d44b8e0a-a32c-4da0-a02b-c3f71d6073dd") }
MongoDB server version: 4.0.10
Error: Authentication failed.
Есть ли способ воссоздать контейнер для повторного запуска сценария?Или запустить команду mongo, которая перезапустит скрипт в работающем контейнере?