Я хочу, чтобы служба MongoDB работала в Docker для обслуживания приложения Flask.Я попытался создать контейнер, используя docker-compose.yml
:
my_mongo_service:
image: mongo
environment:
- MONGO_INITDB_ROOT_USERNAME=${MONGO_ROOT_USER}
- MONGO_INITDB_ROOT_PASSWORD=${MONGO_ROOT_PASSWORD}
- MONGO_INITDB_DATABASE=${MY_DATABASE_NAME}
ports:
- "27017:27017"
volumes:
- "/data/db:/data/db"
command: mongod
Представьте, что у нас есть файл .env
, подобный этому:
MONGO_ROOT_USER=my_fancy_username
MONGO_ROOT_PASSWORD=my_fancy_password
MY_DATABASE_NAME=my_fancy_database
Что я ожидал (читая документ ) состоит в том, что база данных, соответствующая значению MY_DATABASE_NAME
, создана, и пользователь, соответствующий MONGO_ROOT_USER
, также создан, и я мог аутентифицироваться с парой (MONGO_ROOT_USER
, MONGO_ROOT_PASSWORD
).
Хорошо, я запускаю свой контейнер с docker-compose up
и захожу на него с docker exec -it <container-id> bash
.Я кладу mongo
на консоль, и когда я пытаюсь аутентифицироваться, она падает:
> use my_fancy_database
switched to db my_fancy_database
> db.auth('my_fancy_username','my_fancy_password')
Error: Authentication failed.
0
В журнале я вижу следующую ошибку:
[...] authentication failed for my_fancy_username on my_fancy_database from client [...] ; UserNotFound: Could not find user my_fancy_username@my_fancy_database
docker-compose.yml
Конфигурация (как было опубликовано в официальной документации) не работает.Что я делаю не так?
Заранее спасибо.