Spaces:
Running
Running
# 🐍 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"] | |