50 lines
1.1 KiB
Docker

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 \
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"]