# syntax=docker/dockerfile:1
FROM python:3.12-slim-bookworm

LABEL service="api" description="Flask API + Postgres + upload volume"

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV PIP_NO_CACHE_DIR=1

WORKDIR /app

# Системные зависимости для psycopg2-binary и healthcheck
RUN apt-get update && apt-get install -y --no-install-recommends \
    libpq5 \
    wget \
    && rm -rf /var/lib/apt/lists/*

COPY requirements.txt .
RUN pip install --upgrade pip && pip install -r requirements.txt

# Копируем код приложения в образ
COPY app.py .

# Не root в runtime (uid в образе python обычно есть)
RUN useradd --create-home --uid 10001 appuser \
    && mkdir -p /data/uploads \
    && chown -R appuser:appuser /data /app

USER appuser

EXPOSE 5000

# Продакшен-сервер (не встроенный dev-сервер Flask)
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--workers", "2", "app:app"]
