# Etapa 1: Agregar componentes específicos de CUDA y utilidades básicas FROM nvidia/cuda:11.3.1-base-ubuntu20.04 AS base ENV DEBIAN_FRONTEND=noninteractive \ TZ=Europe/Paris # Instalar utilidades básicas y ffmpeg RUN apt-get update && apt-get install -y \ curl \ git \ unzip \ wget \ zip \ git-lfs \ ffmpeg # Agregar la ubicación de ffprobe al PATH ENV PATH="${PATH}:/usr/bin" # Crear el directorio /app en la etapa base WORKDIR /app # Etapa 2: Instalación de dependencias de Python y construcción de la aplicación FROM python:3.10 # Copiar archivos de la aplicación WORKDIR /app COPY . . # Instalar dependencias de Python RUN pip install --no-cache-dir pandas numpy nltk moviepy pydub transformers pydantic pytest fastapi uvicorn torch torchvision torchaudio # Instalar paquete especial whisperx desde GitHub RUN pip install git+https://github.com/m-bain/whisperx.git # Instalar dependencias desde requirements.txt COPY requirements.txt . RUN pip install --no-cache-dir --upgrade -r requirements.txt # Copiar la aplicación desde la etapa anterior COPY --from=base /app . ENV MPLCONFIGDIR=/tmp/matplotlib ENV TRANSFORMERS_CACHE=/tmp/huggingface # Cambiar permisos de archivos necesarios RUN chmod -R 777 /app RUN if [ ! -d "/.cache" ]; then mkdir /.cache; fi && chmod -R 777 /.cache RUN mkdir -p /.cache && chmod -R 777 /.cache # Definir comando predeterminado para iniciar la aplicación CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]