# Custom Python CI Image with WeasyPrint Dependencies # Build: docker build -t breakpilot/python-ci:3.12 -f .docker/python-ci.Dockerfile . # # This image includes all system libraries needed for: # - WeasyPrint (PDF generation) # - psycopg2 (PostgreSQL) # - General Python testing FROM python:3.12-slim LABEL maintainer="BreakPilot Team" LABEL description="Python 3.12 with WeasyPrint and test dependencies for CI" # Install system dependencies in a single layer RUN apt-get update && apt-get install -y --no-install-recommends \ # WeasyPrint dependencies libpango-1.0-0 \ libpangocairo-1.0-0 \ libpangoft2-1.0-0 \ libgdk-pixbuf-2.0-0 \ libffi-dev \ libcairo2 \ libcairo2-dev \ libgirepository1.0-dev \ gir1.2-pango-1.0 \ # PostgreSQL client (for psycopg2) libpq-dev \ # Build tools (for some pip packages) gcc \ g++ \ # Useful utilities curl \ git \ && rm -rf /var/lib/apt/lists/* \ && apt-get clean # Pre-install commonly used Python packages for faster CI RUN pip install --no-cache-dir \ pytest \ pytest-cov \ pytest-asyncio \ pytest-json-report \ psycopg2-binary \ weasyprint \ httpx # Set working directory WORKDIR /app # Default command CMD ["python", "--version"]