# Dockerfile pour le backend RAG CHU FROM python:3.11-slim # Métadonnées LABEL maintainer="CHU Developer " LABEL description="Backend RAG pour documents médicaux CHU" # Variables d'environnement ENV PYTHONUNBUFFERED=1 ENV PYTHONDONTWRITEBYTECODE=1 ENV UV_CACHE_DIR=/tmp/uv-cache # Installation des dépendances système RUN apt-get update && apt-get install -y \ curl \ build-essential \ libmagic1 \ poppler-utils \ tesseract-ocr \ tesseract-ocr-fra \ libreoffice \ && rm -rf /var/lib/apt/lists/* # Installation d'uv RUN curl -LsSf https://astral.sh/uv/install.sh | sh ENV PATH="/root/.cargo/bin:$PATH" # Répertoire de travail WORKDIR /app # Copier les fichiers de configuration COPY pyproject.toml uv.lock* ./ COPY backend/pyproject.toml backend/uv.lock* ./backend/ # Installation des dépendances RUN uv sync --frozen # Copier le code source COPY backend/src ./backend/src COPY backend/.env.example ./backend/.env.example # Créer les répertoires nécessaires RUN mkdir -p uploads backend/static # Exposer le port EXPOSE 8000 # Healthcheck HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \ CMD curl -f http://localhost:8000/api/health || exit 1 # Point d'entrée CMD ["uv", "run", "--directory", "backend", "uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8000"]