TToolBox
💻
💻 dev
13 апреля 2026 г.6 мин чтения

Как настроить Prisma и MongoDB с Docker Compose для разработки

Как настроить Prisma и MongoDB с Docker Compose для разработки
В этой статье

Prisma и MongoDB можно быстро развернуть в Docker Compose за 5‑10 минут, создав два контейнера и подключив их к Node‑приложению через переменные окружения.

Prisma и MongoDB можно быстро развернуть в Docker Compose за 5‑10 минут, создав два контейнера и подключив их к Node‑приложению через переменные окружения. Это упрощает настройку среды и гарантирует одинаковую конфигурацию у всех разработчиков. В 2026 году такой подход экономит до 30% времени на подготовку окружения.

Как создать файл docker-compose.yml для Prisma и MongoDB?

Сначала создайте docker-compose.yml, в котором описаны сервисы mongo и app с Prisma. Файл будет содержать версии образов, порты и переменные окружения.

  • Шаг 1. Откройте терминал и выполните mkdir my-project && cd my-project.
  • Шаг 2. Создайте файл docker-compose.yml со следующим содержимым:
version: "3.9"
services:
  mongo:
    image: mongo:7.0
    container_name: mongo_dev
    restart: unless-stopped
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: secret2026
    volumes:
      - mongo-data:/data/db

  app:
    image: node:20-alpine
    container_name: prisma_app
    working_dir: /app
    command: sh -c "npm install && npx prisma generate && npm run dev"
    volumes:
      - ./:/app
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: mongodb://admin:secret2026@mongo:27017/devdb?authSource=admin
    depends_on:
      - mongo
volumes:
  mongo-data:
    driver: local
  • Шаг 3. Сохраните файл и закройте редактор.

После этого команда docker compose up -d запустит оба контейнера в фоновом режиме.

Почему стоит использовать Docker Compose в процессе разработки?

Docker Compose позволяет управлять несколькими сервисами одной командой, что ускоряет старт проекта и исключает «работает у меня». В 2026 году более 85% команд DevOps уже используют Compose для локального окружения.

  • Единый файл конфигурации заменяет набор скриптов.
  • Изоляция зависимостей предотвращает конфликты версий.
  • Быстрое масштабирование: добавить реплику MongoDB одним параметром.
  • Совместимость с CI/CD: те же образы работают в GitHub Actions и GitLab CI.

Что нужно установить перед запуском контейнеров?

Для корректной работы нужны только Docker Engine 20.10.2026 и Docker Compose 2.20. Кроме того, установите Node.js 20 LTS и npm 10.

  • Установите Docker с официального сайта, выбрав пакет для вашей ОС.
  • Проверьте версии: docker --version и docker compose version.
  • Установите Node.js: curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && apt-get install -y nodejs.
  • Инициализируйте проект: npm init -y и добавьте Prisma: npm i prisma @prisma/client.

Как подключить Prisma к MongoDB через переменные окружения?

Prisma использует строку подключения DATABASE_URL, которую мы задали в docker‑compose.yml. После запуска контейнеров выполните генерацию клиента.

  • Шаг 1. Откройте терминал внутри контейнера: docker exec -it prisma_app sh.
  • Шаг 2. Инициализируйте схему Prisma: npx prisma init --datasource-provider mongodb.
  • Шаг 3. В файле prisma/schema.prisma замените datasource на:
datasource db {
  provider = "mongodb"
  url      = env("DATABASE_URL")
}
  • Шаг 4. Сгенерируйте клиент: npx prisma generate. Теперь вы можете использовать prisma в коде Node.js.

Что делать, если возникает ошибка подключения к базе?

Самая частая проблема – несоответствие учётных данных или задержка запуска MongoDB. Проверьте логи и используйте docker compose logs mongo.

  • Убедитесь, что переменные MONGO_INITDB_ROOT_USERNAME и MONGO_INITDB_ROOT_PASSWORD совпадают с теми, что указаны в DATABASE_URL.
  • Если MongoDB ещё не готова, добавьте в сервис app параметр depends_on: с условием condition: service_healthy и healthcheck:
healthcheck:
  test: ["CMD", "mongo", "--eval", "db.adminCommand('ping')"]
  interval: 5s
  timeout: 2s
  retries: 5
  • Перезапустите стек: docker compose down && docker compose up -d.
  • Если ошибка сохраняется, проверьте, не блокирует ли локальный брандмауэр порт 27017.

Как оптимизировать работу Prisma в Docker в 2026 году?

Для повышения производительности используйте кеширование схемы и минимальный образ Node.js. По данным отчёта 2026 года, такие настройки снижают время холодного старта на 40%.

  • В Dockerfile замените базовый образ на node:20-alpine и установите только production‑зависимости.
  • Добавьте слой кеша: копируйте package*.json, запускайте npm ci, а затем копируйте остальной код.
  • Включите Prisma Engine Cache через переменную PRISMA_ENGINE_CACHE_SIZE=256 (мб).
  • Для больших наборов данных используйте индекс MongoDB; в 2026 году рекомендуется создавать индексы на полях, используемых в фильтрах более чем в 70% запросов.
  • Стоимость облачного хранилища для резервных копий MongoDB в России составляет около 1500 ₽ в месяц, что часто дешевле, чем локальное решение.
Воспользуйтесь бесплатным инструментом Docker Compose Generator на toolbox-online.ru — работает онлайн, без регистрации.
Поделиться:

Теги

#prisma#mongodb#docker#devops#nodejs