FROM python:3.12-slim

# Variables d'environnement
ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    DJANGO_SETTINGS_MODULE=config.settings.prod

WORKDIR /app

# psycopg2-binary : pas besoin de gcc/libpq-dev (économise RAM/disque au build)

# Dépendances Python
COPY requirements.txt .
RUN pip install --upgrade pip && pip install -r requirements.txt

# Code source
COPY . .

# Collecte des fichiers statiques
# DATABASE_URL factice pour éviter l'erreur de connexion à la DB au build
RUN SECRET_KEY=build-only-key DATABASE_URL=sqlite:///tmp/build.db \
    python manage.py collectstatic --noinput

# Utilisateur non-root pour la sécurité
RUN adduser --disabled-password --gecos "" appuser && chown -R appuser /app
USER appuser

EXPOSE 8000

CMD ["gunicorn", "config.wsgi:application", \
     "--bind", "0.0.0.0:8000", \
     "--workers", "3", \
     "--timeout", "60", \
     "--access-logfile", "-", \
     "--error-logfile", "-"]
