FROM python:3.11-slim # Installation des dépendances système RUN apt-get update && apt-get install -y \ libmagic1 \ poppler-utils \ tesseract-ocr \ tesseract-ocr-fra \ libtesseract-dev \ libgl1-mesa-glx \ libglib2.0-0 \ libsm6 \ libxext6 \ libxrender-dev \ libgomp1 \ libgcc-s1 \ curl \ && rm -rf /var/lib/apt/lists/* # Création de l'utilisateur non-root RUN groupadd -r appuser && useradd -r -g appuser appuser WORKDIR /app # Copie des fichiers de configuration COPY requirements.txt . # Installation des dépendances Python RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt # Copie du code de l'application COPY . . # Création du répertoire de logs RUN mkdir -p /app/logs && chown -R appuser:appuser /app # Changement vers l'utilisateur non-root USER appuser # Exposition du port EXPOSE 8000 # Healthcheck HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \ CMD curl -f http://localhost:8000/api/health || exit 1 # Commande de démarrage CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "4"]