Reserch / Dockerfile
mike23415's picture
Update Dockerfile
e28964d verified
FROM python:3.9-slim
# System dependencies with improved virtual display and fonts support
RUN apt-get update && \
apt-get install -y \
gcc \
libssl-dev \
wkhtmltopdf \
xvfb \
xfonts-75dpi \
xfonts-base \
fonts-liberation \
fonts-dejavu \
fonts-noto \
fonts-noto-cjk \
fonts-freefont-ttf \
&& rm -rf /var/lib/apt/lists/*
# Create non-root user and cache directory
RUN useradd -m appuser && \
mkdir -p /app/.cache && \
chown -R appuser:appuser /app
# Environment variables
ENV HF_HOME=/app/.cache \
XDG_CACHE_HOME=/app/.cache \
PYTHONUNBUFFERED=1 \
PYTHONFAULTHANDLER=1
WORKDIR /app
# Install Python dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Configure accelerate for optimal performance
RUN python -c "from accelerate.utils import write_basic_config; write_basic_config(mixed_precision='fp16')" && \
chown -R appuser:appuser /app/.cache
# Verify wkhtmltopdf installation
RUN which wkhtmltopdf && \
wkhtmltopdf --version
# Copy application code
COPY --chown=appuser:appuser . .
# Switch to non-root user
USER appuser
# Runtime
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--timeout", "900", "--workers", "1", "--preload", "app:app"]