FROM python:3.11-slim # Instalamos dependencias para procesamiento de video y red RUN apt-get update && apt-get install -y \ ffmpeg \ curl \ wget \ git \ && rm -rf /var/lib/apt/lists/* # Variables de entorno para Python ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PIP_NO_CACHE_DIR=1 \ PYTHONIOENCODING=utf-8 WORKDIR /app # Instalamos las librerías de Python COPY requirements.txt . RUN pip install --no-cache-dir --upgrade pip setuptools wheel && \ pip install --no-cache-dir -r requirements.txt # Instalamos y actualizamos yt-dlp a la última versión disponible # Esto se hace después de requirements.txt para aprovechar cache RUN pip install --no-cache-dir --upgrade yt-dlp # Verificar que todo esté instalado correctamente RUN python3 -c "import yt_dlp; print(f'yt-dlp OK')" && \ ffmpeg -version | head -1 # Copiamos los archivos de la aplicación COPY . . # Creamos directorios para archivos de configuración si no existen RUN mkdir -p /app/data # Exponemos puertos # 8000 para FastAPI # 8501 para Streamlit EXPOSE 8000 8501 # Comando por defecto (puede ser sobrescrito en docker-compose) CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]