Назад | Перейти на главную страницу

Сбой постоянного хранилища или сбой авторизации после перезапуска Mongocontainer с использованием перестроения docker-compose после перезапуска компьютера

Я установил контейнер 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 не работает так, как должно.

Вопросы

У меня есть два вопроса, которые, как мне кажется, я мог бы упустить:

  1. Я не создавал папку / my / persistent / dir / mongo, используемую в команде mongo volume. Разве он не должен создаваться автоматически или мне нужно создавать его вручную? Если да, то каким должен быть путь? (каталог, в котором находится файл docker-compose) / my / persistent / dir / mongo ???
  2. В конце файла docker-compose под тегом Volume у меня записаны только node_modules. Стоит ли также упомянуть путь к монго-тому?
    (Если я не пишу том node_module, он выдает ошибку, но не тогда, когда я пропускаю папку тома mongo .. Почему?)