Spaces:
Paused
Paused
| # 🐍 Usar Python 3.11 como base | |
| FROM python:3.11-slim | |
| # 🧰 Instalar dependencias del sistema | |
| RUN apt-get update && apt-get install -y \ | |
| pandoc \ | |
| build-essential \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # 📁 Establecer directorio de trabajo | |
| WORKDIR /app | |
| # 📦 Copiar los archivos de requisitos primero para aprovechar caché | |
| COPY requirements.txt . | |
| # 🔧 Instalar dependencias de Python | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # 🗂️ Crear estructura de carpetas necesarias | |
| RUN mkdir -p config database/edullm_store docs logs /app/cache | |
| # 🧠 Configurar caché de modelos de Hugging Face para evitar errores de permisos | |
| ENV TRANSFORMERS_CACHE=/app/cache | |
| ENV HF_HOME=/app/cache | |
| # (Opcional pero recomendable) Forzar descarga del modelo para evitar que lo haga en tiempo de ejecución | |
| # RUN python -c "from sentence_transformers import SentenceTransformer; SentenceTransformer('all-MiniLM-L6-v2')" | |
| # 📁 Copiar el resto del código al contenedor | |
| COPY . . | |
| # 🧾 Asegurar que exista la base de datos y el prompt | |
| RUN touch database/edullm_store/.gitkeep && \ | |
| touch config/prompt_system.txt | |
| # 🔒 Asignar permisos adecuados | |
| RUN chmod -R 755 /app && \ | |
| chmod -R 777 database/ logs/ docs/ cache && \ | |
| chmod 644 config/.env config/prompt_system.txt | |
| # 🌐 Exponer el puerto requerido por Hugging Face Spaces (FastAPI) | |
| EXPOSE 7860 | |
| # 🚀 Comando para ejecutar FastAPI con Uvicorn | |
| CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"] | |