45 lines
1.3 KiB
Docker
45 lines
1.3 KiB
Docker
# Usa una imagen base de Python ligera y moderna
|
|
FROM python:3.11-slim
|
|
|
|
# Permite elegir CPU o CUDA en build:
|
|
# - TORCH_CUDA=cpu -> instalar torch CPU
|
|
# - TORCH_CUDA=cu121 -> instalar torch con CUDA 12.1
|
|
ARG TORCH_CUDA=cpu
|
|
|
|
# Establece el directorio de trabajo dentro del contenedor
|
|
WORKDIR /app
|
|
|
|
# Paquetes nativos necesarios
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
libpq-dev \
|
|
gcc \
|
|
git \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Copia requirements primero para aprovechar caché
|
|
COPY requirements.txt .
|
|
|
|
# Instala dependencias Python "comunes"
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
# Instala PyTorch según ARG (CPU o CUDA 12.1)
|
|
# (Versión de ejemplo; puedes alinear con tu stack)
|
|
RUN if [ "$TORCH_CUDA" = "cu121" ]; then \
|
|
pip install --no-cache-dir --index-url https://download.pytorch.org/whl/cu121 \
|
|
torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1; \
|
|
else \
|
|
pip install --no-cache-dir torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1; \
|
|
fi
|
|
|
|
# Copia el resto del código
|
|
COPY . .
|
|
|
|
# Descarga recursos NLTK si tu app los necesita
|
|
# (si no los usas, comenta esta línea)
|
|
RUN python download_models.py || true
|
|
|
|
# Expone el puerto de Gunicorn (servicio web)
|
|
EXPOSE 8000
|
|
|
|
# El CMD lo define docker-compose para cada servicio
|
|
|