# syntax=docker/dockerfile:1

FROM python:3.11-slim-bookworm

# Установка системных зависимостей
RUN apt-get update && apt-get install -y --no-install-recommends \
    ffmpeg \
    build-essential \
    libsndfile1 \
    && rm -rf /var/lib/apt/lists/*

# Рабочая директория
WORKDIR /app

# Копируем зависимости
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Копируем код проекта
COPY . .

# Предзагрузка моделей (HF_TOKEN передаётся через build args)
ARG HF_TOKEN
ENV HF_TOKEN=$HF_TOKEN
RUN if [ -n "$HF_TOKEN" ]; then \
        echo "[Build] Загрузка моделей с HF_TOKEN..."; \
        python scripts/download_models.py; \
    else \
        echo "[Build] HF_TOKEN не передан — модели загрузятся при первом запуске"; \
    fi

# Создаём директории для данных
RUN mkdir -p uploads processed tmp

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

# Entrypoint скрипт
COPY scripts/docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh

ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["uvicorn", "backend.main:app", "--host", "0.0.0.0", "--port", "8000"]
