# ✅ Image de base avec CUDA 12.2 et Ubuntu 22.04
FROM nvidia/cuda:12.2.0-base-ubuntu22.04

# ✅ Empêcher les invites interactives (ex: tzdata)
ENV DEBIAN_FRONTEND=noninteractive

# ✅ Installer Python 3.11 et les outils nécessaires
RUN apt-get update && \
    apt-get install -y software-properties-common tzdata && \
    add-apt-repository ppa:deadsnakes/ppa && \
    apt-get update && \
    apt-get install -y \
    python3.11 \
    python3.11-venv \
    python3.11-dev \
    python3-pip \
    ffmpeg \
    git \
    curl && \
    rm -rf /var/lib/apt/lists/*

# ✅ Définir Python 3.11 comme version par défaut
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1

# ✅ Vérification (optionnelle)
RUN python3 --version

# ✅ Définir le répertoire de travail
WORKDIR /app

# ✅ Copier les dépendances
COPY requirements.txt .

# ✅ Installer PyTorch avec support CUDA 12.1
RUN pip3 install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

# ✅ Mettre à jour les outils de build Python
RUN pip3 install --upgrade pip setuptools wheel build

# ✅ Installer Whisper depuis le dépôt officiel
RUN pip3 install --no-cache-dir git+https://github.com/openai/whisper.git


# ✅ Installer les autres dépendances
RUN pip3 install --no-cache-dir -r requirements.txt

# ✅ Copier le code de l'application
COPY app/ ./app

# ✅ Exposer le port de l’API
EXPOSE 8000

# ✅ Lancer Uvicorn
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
