File size: 1,433 Bytes
a4639c3
b8fd2da
 
a4639c3
 
b8fd2da
 
 
 
 
 
 
a4639c3
 
 
b8fd2da
a4639c3
b8fd2da
 
a4639c3
b8fd2da
 
a4639c3
b8fd2da
 
 
a4639c3
b8fd2da
 
 
a4639c3
 
b9579a5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 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"]