Spaces:
Sleeping
Sleeping
File size: 1,439 Bytes
0b30b46 dcb2ff8 452cdbb 0b30b46 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | # =============================================================================
# DOCKERFILE OPTIMIZADO PARA API FASTAPI + TRANSFORMERS (BETO) EN ENTORNOS CPU
# =============================================================================
FROM python:3.12-slim
# 1. Instalar compiladores necesarios para psycopg2 y rapidfuzz
USER root
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libpq-dev \
gcc \
&& rm -rf /var/lib/apt/lists/*
# 2. Configurar el usuario exigido por Hugging Face (UID 1000)
RUN useradd -m -u 1000 user
ENV PATH="/home/user/.local/bin:$PATH" \
PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
HF_HOME=/tmp/huggingface_cache
WORKDIR /app
# 3. Copiar e instalar dependencias con los permisos correctos
COPY --chown=user ./requirements.txt requirements.txt
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir -r requirements.txt
# 4. Descargar y almacenar los pesos de BETO (NER) en caché durante la construcción
RUN python -c "from transformers import pipeline; pipeline('ner', model='dccuchile/bert-base-spanish-wwm-cased', aggregation_strategy='simple')"
# 5. Copiar el resto del código asignando la propiedad al usuario final
COPY --chown=user . /app
USER user
# 6. Escuchar obligatoriamente en el puerto 7860 exigido por Hugging Face
EXPOSE 7860
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"] |