Запуск Mongo и Mongo Express в Docker Compose

docker-compose.yml

version: '3.9'

services:
  
  mongo:
    build: ./build-mongo
    container_name: mongo
    restart: always
    networks:
      - mongo
    ports:
      - "27017:27017"
    environment:
      - MONGO_INITDB_ROOT_USERNAME=${MONGO_ROOT_USER}
      - MONGO_INITDB_ROOT_PASSWORD=${MONGO_ROOT_PASSWORD}
      - MONGO_INITDB_DATABASE=test-database

  mongo-express:
    build: ./build-mongo-express
    container_name: mongo-express
    restart: always
    networks:
      - mongo
    ports:
      - "8093:8081"
    environment:
      - ME_CONFIG_MONGODB_SERVER=mongo
      - ME_CONFIG_MONGODB_PORT=27017
      - ME_CONFIG_MONGODB_ENABLE_ADMIN=true
      - ME_CONFIG_MONGODB_ADMINUSERNAME=mongo
      - ME_CONFIG_MONGODB_ADMINPASSWORD=mongo
      - ME_CONFIG_MONGODB_AUTH_DATABASE=admin
      - ME_CONFIG_MONGODB_AUTH_USERNAME=${MONGO_ROOT_USER}
      - ME_CONFIG_MONGODB_AUTH_PASSWORD=${MONGO_ROOT_PASSWORD}
      - ME_CONFIG_BASICAUTH_USERNAME=${MONGOEXPRESS_LOGIN}
      - ME_CONFIG_BASICAUTH_PASSWORD=${MONGOEXPRESS_PASSWORD}

networks:
  mongo:

Файл располагается в корневом каталоге.

Файл .env:

MONGO_ROOT_USER=mongo
MONGO_ROOT_PASSWORD=mongo
MONGOEXPRESS_LOGIN=mongo
MONGOEXPRESS_PASSWORD=mongo

Dockerfile для Mongo

FROM mongo:5.0

Файл располагается в ./build-mongo

Dockerfile для Mongo Express

FROM mongo-express:0.54

Файл располагается в ./build-mongo-express

Подробнее можно почитать на официальных страницах:

docker-compose up --build -d

Выполнить сборку контейнера и запустить можно при помощи команды:

Запуск Mongo и Mongo Express в Docker Compose: 2 комментария

  1. Обратите внимание, что в качестве хоста мы используем не Localhost, а mongo. Мongo — это название контейнера который мы используем в docker-compose файле, а следовательно внутри контейнера мы можем доступиться только через mongo хост к нашей базе.

    1. Можно использовать localhost если проброшены порты. Если же докеровская сеть изолирована, тогда доступ получаем по названию сервиса (секция services в yml).

      В нашем случае нужно дописать переменную окружения — «ME_CONFIG_MONGODB_SERVER=mongo».

      Дополнил статью с применением этой переменной.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *