FROM python:3.14-slim WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends \ tzdata \ xvfb \ xauth \ ca-certificates \ curl \ firefox-esr \ && rm -rf /var/lib/apt/lists/* COPY pyproject.toml uv.lock /app/ RUN pip install --no-cache-dir uv RUN uv sync --frozen --no-dev COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh COPY src . # Download uBlock Origin RUN mkdir -p /data/extensions && \ curl -fsSL -o /data/extensions/ublock_origin.xpi \ "https://github.com/gorhill/uBlock/releases/download/1.62.0/uBlock0_1.62.0.firefox.signed.xpi" ENV PYTHONUNBUFFERED=1 ENV PORT=80 ENV DATA_DIR=/data ENV PROXY_URL="" ENV MAIL_JSON=/data/mail.json ENV FIREFOX_BINARY=firefox-esr VOLUME ["/data"] EXPOSE 80 HEALTHCHECK --start-period=10s --start-interval=2s CMD \ test "$(curl -fsS "http://127.0.0.1:$PORT/health")" = "ok" STOPSIGNAL SIGINT CMD ["/entrypoint.sh"]