# syntax=docker/dockerfile:1.7
FROM python:3.12-slim AS base

# Dépendances système minimales, pas de compilateur dans l'image finale.
ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PIP_NO_CACHE_DIR=1

WORKDIR /srv

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Utilisateur non privilégié : l'application ne tourne jamais en root.
RUN useradd --system --uid 10001 --create-home ama
COPY --chown=ama:ama app ./app
COPY --chown=ama:ama migrations ./migrations
COPY --chown=ama:ama alembic.ini entrypoint.sh ./

USER ama
EXPOSE 8000

HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \
  CMD python -c "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://127.0.0.1:8000/api/health', timeout=3).status==200 else 1)"

CMD ["./entrypoint.sh"]
