Я установил контейнер mongo, подключенный к приложению nodejs.
Сначала я делаю docker-compose up --build, где запускаю mongo как службу без аутентификации, то есть закомментировал.
Затем я вхожу в терминал mongo с помощью docker exec -it mongoContainerID / bin / bash
После чего я добавляю двух пользователей:
db.createUser(
{
user: "abc",
pwd: "abcpwd",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
и
db.createUser(
{
user: "abc2",
pwd: "abc2pwd",
roles: [ { role: "readWrite", db: "test" } ]
}
)
а затем перезапустите: с включенной аутентификацией. Так что все работает нормально, пока машина не перезагрузится.
После каждого перезапуска машины я должен снова повторять этот процесс добавления пользователей, в противном случае я получаю ошибку аутентификации: UserNotFound: Could not find user
И после проверки БД компасом я вижу, что предыдущих данных нет.
Это означает, что постоянное хранилище работает не так, как должно.
Вот мой докер создать файл:
version: "3"
services:
app:
build: .
command: nodemon -L app.js
volumes:
- "./:/usr/src/app"
- "node_modules:/usr/src/app/node_modules"
ports:
- "9000:3000"
depends_on:
- "mongo"
mongo:
image: "mongo"
ports:
- "27019:27017"
env_file: .env
environment:
- MONGO_INITDB_ROOT_USERNAME=${MONGO_INITDB_ROOT_USERNAME}
- MONGO_INITDB_ROOT_PASSWORD=${MONGO_INITDB_ROOT_PASSWORD}
- MONGO_INITDB_DATABASE=${MONGO_INITDB_DATABASE}
volumes:
- /my/persistent/dir/mongo:/data/db
command: mongod --auth
# adminmongo:
# image: "mrvautin/adminmongo"
# ports:
# - "1234:1234"
volumes:
node_modules:
> Моя оценка:
Постоянное хранилище mongodb не работает так, как должно.
Вопросы
У меня есть два вопроса, которые, как мне кажется, я мог бы упустить: