veilrender / Dockerfile
Peng Ding
fix: pre-download Chromium as runtime user to avoid re-download on startup
029a377
Raw
History Blame Contribute Delete
1.03 kB
FROM python:3.12-slim
# System libraries required by headless Chromium
RUN apt-get update && apt-get install -y --no-install-recommends \
libatk1.0-0 \
libatk-bridge2.0-0 \
libcups2 \
libxcb1 \
libxkbcommon0 \
libatspi2.0-0 \
libx11-6 \
libxcomposite1 \
libxdamage1 \
libxext6 \
libxfixes3 \
libxrandr2 \
libgbm1 \
libcairo2 \
libpango-1.0-0 \
libnss3 \
libnspr4 \
libasound2t64 \
libdbus-1-3 \
fonts-liberation \
&& rm -rf /var/lib/apt/lists/*
# HF Spaces runs as non-root user with UID 1000
RUN useradd -m -u 1000 user || true
WORKDIR /app
# Install Python package (includes cloakbrowser + playwright)
COPY pyproject.toml .
COPY src/ src/
RUN pip install --no-cache-dir .
# Pre-download CloakBrowser Chromium binary as runtime user
USER 1000
RUN python -c "from cloakbrowser import ensure_binary; ensure_binary()"
EXPOSE 7860
CMD ["python", "-m", "veilrender"]