29 lines
704 B
Docker
29 lines
704 B
Docker
# 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()'"]
|