# Image légère et stable ; Python 3.11 respecte le prérequis Python >= 3.9. FROM python:3.11-slim # Tous les chemins suivants sont relatifs à /app dans le conteneur. WORKDIR /app # ffmpeg est requis par librosa/audioread pour décoder les fichiers MP3 annoncés par l'API. RUN apt-get update \ && apt-get install --no-install-recommends -y ffmpeg \ && rm -rf /var/lib/apt/lists/* # Copier puis installer les dépendances avant le code optimise le cache de construction Docker. COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Le reste du projet est ajouté après les dépendances, car il change plus souvent. COPY . . # Documente le port exposé par Uvicorn ; docker-compose le publie vers la machine hôte. EXPOSE 8000 # Démarre l'API REST au lancement du conteneur. CMD ["uvicorn", "api:app", "--host", "0.0.0.0", "--port", "8000"]