# Используем slim-образ Python для меньшего размера
FROM python:3.11-slim

# Устанавливаем системные зависимости для WeasyPrint и Pandoc
# WeasyPrint требует: cairo, pango, gdk-pixbuf2, libffi
# Pandoc — просто устанавливается через apt
RUN apt-get update && apt-get install -y --no-install-recommends \
    # Для WeasyPrint
    libpango-1.0-0 \
    libpangoft2-1.0-0 \
    libcairo2 \
    libgdk-pixbuf2.0-0 \
    libffi-dev \
    shared-mime-info \
    # Для Pandoc
    pandoc \
    # Утилиты
    curl \
    && rm -rf /var/lib/apt/lists/*

# Устанавливаем рабочую директорию
WORKDIR /app

# Копируем requirements и устанавливаем Python-зависимости
# (отдельным слоем для кэширования)
COPY requirements.txt .
RUN pip install --no-cache-dir --upgrade pip && \
    pip install --no-cache-dir -r requirements.txt

# Копируем исходный код
COPY . .

# Создаём папку для данных (будет переопределена volume при запуске)
RUN mkdir -p /app/data

# Обновляем кэш MIME-типов (нужно для WeasyPrint)
RUN update-mime-database /usr/share/mime

# Переменные окружения по умолчанию
ENV PYTHONUNBUFFERED=1 \
    DATA_DIR=/app/data \
    OLLAMA_BASE_URL=http://ollama:11434 \
    ENVIRONMENT=production

# Открываем порт
EXPOSE 8000

# Команда запуска
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
