Spaces:
Sleeping
Sleeping
| # Dockerfile para Hugging Face Spaces | |
| # Proyecto: Clasificador de Aves del Tolima | |
| FROM python:3.12-slim | |
| # Instalar dependencias del sistema para OpenCV | |
| RUN apt-get update && apt-get install -y \ | |
| libgl1 \ | |
| libglib2.0-0 \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Crear usuario no-root (requerido por HF Spaces) | |
| RUN useradd -m -u 1000 user | |
| USER user | |
| ENV PATH="/home/user/.local/bin:$PATH" | |
| # Directorio de trabajo | |
| WORKDIR /app | |
| # Copiar requirements.txt | |
| COPY --chown=user ./requirements.txt /app/requirements.txt | |
| # Instalar dependencias | |
| RUN pip install --no-cache-dir --upgrade -r requirements.txt | |
| # Copiar archivos necesarios | |
| COPY --chown=user ./app.py /app/app.py | |
| COPY --chown=user ./download_models.py /app/download_models.py | |
| COPY --chown=user ./dataset_features_light.json /app/dataset_features_light.json | |
| # Crear directorio para modelos | |
| RUN mkdir -p /app/modelos | |
| # Descargar modelos desde Hugging Face al inicio | |
| RUN python download_models.py | |
| # Exponer puerto 7860 (requerido por HF Spaces) | |
| EXPOSE 7860 | |
| # Comando para iniciar la aplicación | |
| # Hugging Face Spaces requiere escuchar en 0.0.0.0:7860 | |
| CMD ["gunicorn", "--bind", "0.0.0.0:7860", "--workers", "1", "--threads", "4", "--timeout", "120", "app:app"] | |