FROM python:3.11-slim-bookworm WORKDIR /app # Python dependencies first (for better caching) COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Playwright + Chromium (handles all system deps automatically) RUN playwright install --with-deps chromium # WeasyPrint system dependencies RUN apt-get update && apt-get install -y --no-install-recommends \ libpango-1.0-0 \ libpangocairo-1.0-0 \ libgdk-pixbuf2.0-0 \ libffi-dev \ shared-mime-info \ curl \ && rm -rf /var/lib/apt/lists/* # Application code COPY app/ ./app/ EXPOSE 8000 CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]