edullm / Dockerfile
JairoDanielMT's picture
Update Dockerfile
c26b7d8 verified
raw
history blame
1.49 kB
# 🐍 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"]