FROM python:3.11-slim WORKDIR /app # ---- base utils ---- RUN apt-get update && \ apt-get install -y --no-install-recommends git ca-certificates && \ rm -rf /var/lib/apt/lists/* RUN pip install --no-cache-dir pip setuptools wheel # ---- (optional) Playwright runtime libs ---- ARG WITH_PLAYWRIGHT=1 RUN if [ "$WITH_PLAYWRIGHT" = "1" ]; then \ set -eux; \ apt-get update && apt-get install -y --no-install-recommends \ libgtk-3-0 libgdk-pixbuf-2.0-0 libpangocairo-1.0-0 libcairo-gobject2 libxcursor1 \ libnss3 libnspr4 libdrm2 libgbm1 libxss1 libxshmfence1 libx11-xcb1 \ libxcomposite1 libxdamage1 libxrandr2 libxtst6 libxfixes3 libxext6 libxi6 \ libxkbcommon0 libpango-1.0-0 libasound2 xdg-utils fonts-liberation wget \ && rm -rf /var/lib/apt/lists/*; \ fi # ---- install wrapper python deps (includes playwright) ---- COPY requirements.txt /app/requirements-wrapper.txt RUN pip install --no-cache-dir -r /app/requirements-wrapper.txt # ---- bring wrapper in ---- COPY wrapper.py /app/wrapper.py COPY start.sh /app/start.sh RUN chmod +x /app/start.sh ENTRYPOINT ["/app/start.sh"]