61 lines
1.8 KiB
Docker
Executable File
61 lines
1.8 KiB
Docker
Executable File
# Usar una imagen base de NVIDIA con CUDA 12.1.1 y Python 3.10
|
|
FROM nvidia/cuda:12.1.1-runtime-ubuntu22.04
|
|
|
|
# Evitar que los cuadros de diálogo de apt se bloqueen
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Instalar Python, pip y dependencias del sistema
|
|
RUN apt-get update && apt-get install -y \
|
|
python3.10 \
|
|
python3-pip \
|
|
ffmpeg \
|
|
poppler-utils \
|
|
tesseract-ocr \
|
|
tesseract-ocr-spa \
|
|
curl \
|
|
libgl1 \
|
|
libglib2.0-0 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Instalar Node.js 20 usando NodeSource repository
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
|
|
apt-get install -y nodejs && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Crear un enlace simbólico para que python3 -> python
|
|
RUN ln -s /usr/bin/python3 /usr/bin/python
|
|
|
|
# Establecer el directorio de trabajo
|
|
WORKDIR /app
|
|
|
|
# Copiar requerimientos e instalar dependencias de Python
|
|
COPY requirements.txt .
|
|
RUN python3 -m pip install --no-cache-dir --upgrade pip && \
|
|
python3 -m pip install --no-cache-dir \
|
|
torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 && \
|
|
python3 -m pip install --no-cache-dir -r requirements.txt
|
|
|
|
# Instalar Claude CLI
|
|
RUN npm install -g @anthropic-ai/claude-code
|
|
|
|
# Instalar Gemini CLI como root
|
|
RUN npm install -g @google/gemini-cli
|
|
|
|
# Crear usuario sin privilegios para ejecutar la app (evita bloqueos del CLI)
|
|
ARG APP_UID=1000
|
|
ARG APP_GID=1000
|
|
RUN groupadd --gid ${APP_GID} appgroup \
|
|
&& useradd --uid ${APP_UID} --gid ${APP_GID} --create-home appuser
|
|
|
|
# Copiar todo el código de la aplicación al contenedor
|
|
COPY . .
|
|
|
|
# Dar acceso al usuario no root
|
|
RUN chown -R appuser:appgroup /app
|
|
|
|
# Ejecutar como usuario sin privilegios (requerido por Claude CLI)
|
|
USER appuser
|
|
|
|
# Comando por defecto para iniciar el servicio principal unificado
|
|
CMD ["python3", "main.py"]
|