Dockerfile
Rama main · réplica de lectura del repositorio original.
FROM python:3.12-slim
WORKDIR /app
# System dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
libmagic1 \
poppler-utils \
libgl1 \
libglib2.0-0 \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
# Unprivileged runtime user. Data and cache directories belong to it;
# everything else in /app stays read-only for the process.
RUN useradd --system --uid 10001 --home-dir /app --shell /usr/sbin/nologin app \
&& mkdir -p /app/data/runs /var/cache/research-toolset \
&& chown -R app:app /app/data /var/cache/research-toolset
ENV GRADIO_SERVER_NAME=0.0.0.0 \
GRADIO_SERVER_PORT=7860 \
APP_TEMP_DIR=/var/cache/research-toolset \
PYTHONUNBUFFERED=1
USER app
EXPOSE 7860
HEALTHCHECK --interval=30s --timeout=5s --start-period=40s --retries=3 \
CMD python -c "import os,urllib.request; urllib.request.urlopen('http://127.0.0.1:%s/' % os.environ.get('GRADIO_SERVER_PORT','7860'), timeout=4)" || exit 1
CMD ["python", "app.py"]