# Étape de build FROM python:3.11 as builder WORKDIR /app # Copier seulement les fichiers nécessaires pour installer les dépendances COPY requirements.txt . # Installer les dépendances RUN pip wheel --no-cache-dir --no-deps --wheel-dir /app/wheels -r requirements.txt # Étape finale FROM python:3.11 ENV CUDA_VISIBLE_DEVICES="" ENV TF_FORCE_CPU_ALLOW_GROWTH=true ENV PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:32 WORKDIR /app # Créer le répertoire de cache et définir les permissions RUN mkdir -p /.cache /root/.cache /user_conversations && chmod -R 777 /.cache /root/.cache /user_conversations # Copier les roues de dépendances de l'étape précédente COPY --from=builder /app/wheels /wheels COPY --from=builder /app/requirements.txt . # Installer les roues de dépendances RUN pip install --no-cache /wheels/* # Copier le reste des fichiers de l'application COPY . . # Définir la variable d'environnement pour Hugging Face cache ENV HF_HOME=/root/.cache/huggingface # Créer un utilisateur non-root et définir les permissions RUN useradd -m appuser && chown -R appuser:appuser /app /user_conversations /root/.cache /usr/local/lib/python3.11/site-packages /usr/local/bin /usr/local USER appuser EXPOSE 8080 CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]