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