best / backend /Dockerfile
anky2002's picture
fix: Update Dockerfile to install fpdf2 + weasyprint deps, playwright setup
c8e9dda verified
Raw
History Blame Contribute Delete
1.04 kB
FROM python:3.12-slim
WORKDIR /app
# System deps (including WeasyPrint dependencies)
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
curl \
libpango-1.0-0 \
libpangocairo-1.0-0 \
libgdk-pixbuf2.0-0 \
libffi-dev \
libcairo2 \
&& rm -rf /var/lib/apt/lists/*
# Install uv
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /usr/local/bin/
# Copy project files
COPY pyproject.toml uv.lock* ./
# Install dependencies
RUN uv sync --frozen --no-dev --no-install-project || uv sync --no-dev --no-install-project
# Install extra PDF deps (fpdf2 for fallback, weasyprint for quality)
RUN uv pip install --system fpdf2 weasyprint 2>/dev/null || uv pip install --system fpdf2
# Install playwright browsers
RUN uv run playwright install chromium --with-deps 2>/dev/null || true
# Copy app
COPY . .
# Install project
RUN uv sync --frozen --no-dev 2>/dev/null || uv sync --no-dev
EXPOSE 8000
CMD ["uv", "run", "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]