# backend/Dockerfile FROM python:3.11-slim RUN addgroup --system app && adduser --system --ingroup app app WORKDIR /srv/app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . # Assurer permissions RUN chown -R app:app /srv/app USER app # Port interne EXPOSE 5000 # Variable d'environnement par défaut ENV FLASK_ENV=production ENV GUNICORN_WORKERS=3 ENV GUNICORN_THREADS=2 # Commande de démarrage via gunicorn (attache l'app Flask : app:app) # Utilise timeout raisonnable, bind sur 0.0.0.0:5000 CMD ["sh", "-c", "gunicorn --workers ${GUNICORN_WORKERS} --threads ${GUNICORN_THREADS} --bind 0.0.0.0:5000 --access-logfile - --error-logfile - 'main:create_app()'"]