Загрузка...

Блог

Docker Compose для PostgreSQL + Qdrant за 15 минут

Docker Compose для PostgreSQL + Qdrant за 15 минут

Минимальный стек для RAG: два сервиса. PostgreSQL — метаданные, пользователи, при необходимости pgvector. Qdrant — векторное хранилище для эмбеддингов. Ниже — конфигурация и порядок запуска.

Роль компонентов

PostgreSQL: структурированные данные — документы, разделы, пользователи, сессии. Qdrant: similarity search по векторам. Связка типична для RAG: поиск в Qdrant по эмбеддингу запроса, подтягивание метаданных и текстов из PostgreSQL или кеша. Данные в одном контуре; интерфейс — отдельный слой.

Конфигурация docker-compose

Файл docker-compose.yml. Два сервиса. PostgreSQL: пароль и объём. Qdrant: образ и порт. Пример:

version: '3.8'
services:
  postgres:
    image: postgres:15-alpine
    environment:
      POSTGRES_USER: adminica
      POSTGRES_PASSWORD: your_secure_password
      POSTGRES_DB: adminica
    volumes:
      - pgdata:/var/lib/postgresql/data
    ports:
      - "5432:5432"
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U adminica"]
      interval: 5s
      timeout: 5s
      retries: 5

  qdrant:
    image: qdrant/qdrant:latest
    volumes:
      - qdrant_storage:/qdrant/storage
    ports:
      - "6333:6333"
    environment:
      QDRANT__SERVICE__GRPC_PORT: 6334

volumes:
  pgdata:
  qdrant_storage:

Запуск: docker compose up -d. Порты и роли компонентов:

СервисПортНазначение
PostgreSQL5432Подключение приложения, миграции, метаданные документов
Qdrant REST6333Dashboard, API коллекций, проверка здоровья
Qdrant gRPC6334Быстрый поиск по векторам из приложения

Верификация

PostgreSQL: psql -h localhost -U adminica -d adminica -c "SELECT 1". Qdrant: http://localhost:6333/dashboard или curl http://localhost:6333/collections. Дальше: настройка приложения — URL и ключи к БД и Qdrant, создание коллекции, загрузка эмбеддингов через API.

RAG поверх стека

Приложение подключается к PostgreSQL (миграции, документы/чанки) и к Qdrant (коллекция, индексация, поиск). После деплоя: миграции БД, переиндексация. Готовый стек с UI можно верифицировать в облаке; затем — развернуть тот же конфигурационный файл у себя. Архив создаётся один раз; обслуживание — непрерывно.

Практики применения

  • Разверните стек по статье в тестовом окружении; проверьте psql и curl .../collections.
  • Затем настройте приложение, создайте коллекцию и загрузите эмбеддинги; документируйте шаги в базе знаний.

Итого: два сервиса в одном docker-compose.yml, healthcheck для PostgreSQL, volumes для данных. Проверка — psql и curl http://localhost:6333/collections. Дальше — настройка приложения и загрузка эмбеддингов.