Я пытаюсь создать контейнер docker с изображением mon go. Я хочу, чтобы в контейнере был пользователь root с именем admin
и возможность создавать базу данных с именем experts_db
. Вот мой docker-compose.yaml
:
version: '3.7'
services:
mongodb:
image: mongo:4.0.4
container_name: mongodbtest
restart: always
env_file: .env
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: 123456789
MONGO_INITDB_DATABASE: experts_db
ports:
- 27017:27017
volumes:
- ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
, а вот мой mongo-init.js
файл:
use admin;
db.createUser(
{
user: "andrea",
pwd: "123456789",
roles: [
"userAdminAnyDatabase",
"dbAdminAnyDatabase",
"readWriteAnyDatabase"
]
}
);
Несмотря на это, когда я нахожусь в оболочке mon go и пытаюсь получить список всех пользователей, я получаю следующую ошибку:
use experts_db
switched to db experts_db
> db.getUsers()
2020-01-22T14:30:00.569+0000 E QUERY [js] Error: command usersInfo requires authentication :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.getUsers@src/mongo/shell/db.js:1763:1
@(shell):1:1
Кто-нибудь знает, почему это происходит? Я новичок в понедельник go и не понимаю, как я мог это исправить