Пользователь Mongo в Docker
Пользователь Mongo создаётся на пустом томе и с этого момента сервер требует пароль. Переменные окружения читают скрипт старта только один раз, когда каталог данных ещё пуст. На заполненном томе новые значения не перепишут старые учётные данные.
Сервис db
на mongo:8.3
монтирует том authdata
в /data/db
и получает логин root
с паролем demo:
services:
db:
image: mongo:8.3
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: demo
volumes:
- authdata:/data/db
volumes:
authdata:
Фоновый подъём проекта выполняют так:
docker compose up -d
Проверка идёт с логином
root, паролем demo
и базой admin.
Тот же запрос без пароля
на этом томе уже не проходит.
Это правило действует
только после первого
старта пустого тома
authdata:
docker compose exec db mongosh --quiet -u root -p demo --authenticationDatabase admin --eval "db.runCommand({ ping: 1 })"
Опишите сервис db с томом vault, логином root и паролем demo при первом старте пустого хранилища.
Отметьте, что проверка с паролем проходит, а без пароля на том же томе отказывает.