Конфигурация томов для mongodb в docker compose

#mongodb #docker #docker-compose

#mongodb #docker #docker-compose

Вопрос:

Я долго пытался подключить mongo db к своему локальному хранилищу, но комментарий к коду ( # — ./database:/data/db) не может быть успешно смонтирован, если я хочу одновременно инициализировать db. Затем я попытался создать том, как показано сейчас (создайте раздел томов отдельно). и это работает. Знаете ли вы разницу и почему? не могли бы вы любезно указать на это? Заранее спасибо.

перед внесением изменений

 version: '3.5'

services:

  mongodb:
    image: mongo
    container_name: mongodb
    restart: unless-stopped
    ports:
      - 27017:27017
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=root
    volumes:
      - ./docker-entrypoint-initdb.d/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
      - ./database:/data/db    # not work 
  mongo-express:
    image: mongo-express
    container_name: mongo-express
    restart: unless-stopped
    ports:
      - 8081:8081
    environment:
      - ME_CONFIG_MONGODB_ADMINUSERNAME=root
      - ME_CONFIG_MONGODB_ADMINPASSWORD=root
      - ME_CONFIG_MONGODB_SERVER=mongodb
      - ME_CONFIG_MONGODB_ENABLE_ADMIN=true
      - ME_CONFIG_BASICAUTH_USERNAME=xhp
      - ME_CONFIG_BASICAUTH_PASSWORD=xhp
    depends_on:
      - mongodb
 

после изменения

 version: '3.5'

services:

  mongodb:
    image: mongo
    container_name: mongodb
    restart: unless-stopped
    ports:
      - 27017:27017
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=root
    volumes:
      - ./docker-entrypoint-initdb.d/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
      - mongodb:/data/db
      # - ./database:/data/db     not work 
  mongo-express:
    image: mongo-express
    container_name: mongo-express
    restart: unless-stopped
    ports:
      - 8081:8081
    environment:
      - ME_CONFIG_MONGODB_ADMINUSERNAME=root
      - ME_CONFIG_MONGODB_ADMINPASSWORD=root
      - ME_CONFIG_MONGODB_SERVER=mongodb
      - ME_CONFIG_MONGODB_ENABLE_ADMIN=true
      - ME_CONFIG_BASICAUTH_USERNAME=xhp
      - ME_CONFIG_BASICAUTH_PASSWORD=xhp
    depends_on:
      - mongodb
volumes:
  mongodb:
 

Ответ №1:

Разница приводит к разным локальным каталогам. Моя проблема должна быть решена путем удаления старого тома и его обновления.