Spaces:
Sleeping
Sleeping
# Utilise une image de base Python stable (slim-buster est plus légère) | |
FROM python:3.9-slim-buster | |
# Crée un utilisateur non-root pour des raisons de sécurité | |
# C'est une bonne pratique qui était déjà dans tes instructions Hugging Face | |
RUN useradd -m -u 1000 user | |
USER user | |
# Définit le répertoire de travail dans le conteneur | |
# Tous les fichiers copiés seront relatifs à ce répertoire | |
WORKDIR /app | |
# Ajoute le répertoire ~/.local/bin au PATH pour s'assurer que les exécutables pip sont trouvés | |
ENV PATH="/home/user/.local/bin:$PATH" | |
# Copie le fichier requirements.txt et installe les dépendances | |
# IMPORTANT : Ajout de --user pour que uvicorn soit installé dans ~/.local/bin | |
# Ceci est fait en premier pour tirer parti de la mise en cache de Docker | |
COPY --chown=user requirements.txt . | |
RUN pip install --no-cache-dir --upgrade -r requirements.txt --user | |
# Copie le reste de ton code d'application (main.py, etc.) | |
# Assure-toi que main.py est bien à la racine du dossier que tu copies | |
COPY --chown=user . /app | |
# Expose le port sur lequel ton API FastAPI écoute | |
# C'est le port 8010 comme défini dans ton main.py | |
EXPOSE 8010 | |
# Commande pour lancer l'application avec Uvicorn | |
# main:app signifie que l'application FastAPI est dans le fichier 'main.py' et s'appelle 'app' | |
# Le port correspond à celui exposé ci-dessus et dans ton main.py | |
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"] |