35 lines
1.2 KiB
Plaintext
35 lines
1.2 KiB
Plaintext
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 OS 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) ----
|
|
# keep this separate from repo requirements; the wrapper must have playwright even if repo doesn't list it
|
|
COPY requirements.txt /app/requirements-wrapper.txt
|
|
RUN pip install --no-cache-dir -r /app/requirements-wrapper.txt
|
|
|
|
# ---- wrapper files ----
|
|
COPY wrapper.py /app/wrapper.py
|
|
COPY start.sh /app/start.sh
|
|
RUN chmod +x /app/start.sh
|
|
|
|
ENTRYPOINT ["/app/start.sh"]
|