1
0
Fork 0

mvp: wonky but working selenium firefox version

This commit is contained in:
Arthur K. 2026-03-07 20:18:02 +03:00
parent 061eefdb24
commit a3c843d63c
Signed by: wzray
GPG key ID: B97F30FDC4636357
20 changed files with 738 additions and 407 deletions

View file

@ -8,37 +8,63 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
xauth \
ca-certificates \
curl \
firefox-esr \
&& rm -rf /var/lib/apt/lists/*
firefox-esr=140.8.0esr-1~deb13u1 \
fonts-noto \
fonts-noto-cjk \
fonts-dejavu \
fonts-liberation \
fonts-noto-color-emoji \
pulseaudio \
libgl1-mesa-dri \
libglu1-mesa \
zip && \
rm -rf /var/lib/apt/lists/* && \
fc-cache -fv && \
COPY pyproject.toml uv.lock /app/
# Install geckodriver
RUN GECKO_VERSION=$(curl -s https://api.github.com/repos/mozilla/geckodriver/releases/latest | grep tag_name | cut -d'"' -f4) && \
curl -fsSL "https://github.com/mozilla/geckodriver/releases/download/${GECKO_VERSION}/geckodriver-${GECKO_VERSION}-linux64.tar.gz" | tar -xzf - -C /usr/local/bin && \
chmod +x /usr/local/bin/geckodriver
# Download uBlock Origin (latest)
RUN UBLOCK_VERSION=$(curl -s https://api.github.com/repos/gorhill/uBlock/releases/latest | grep tag_name | cut -d'"' -f4) && \
mkdir -p /extras/extensions && \
curl -fsSL -o /extras/extensions/ublock_origin.xpi \
"https://github.com/gorhill/uBlock/releases/download/${UBLOCK_VERSION}/uBlock0_${UBLOCK_VERSION}.firefox.signed.xpi"
COPY pyproject.toml uv.lock .
RUN pip install --no-cache-dir uv
RUN uv sync --frozen --no-dev
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
# Configure fontconfig for emoji support
COPY src .
COPY extras/patch_firefox.py .
RUN python3 ./patch_firefox.py
# 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"
# Build Dark Reader extension (Selenium cleanup)
COPY extras/extension /tmp/extension
RUN cd /tmp/extension && zip -r /extras/extensions/dark-reader.xpi . && rm -rf /tmp/extension
ENV PYTHONUNBUFFERED=1
ENV PORT=80
ENV DATA_DIR=/data
ENV PROXY_URL=""
ENV MAIL_JSON=/data/mail.json
ENV FIREFOX_BINARY=firefox-esr
ENV EXTRAS_DIR=/extras
ENV EMAILS_FILE=/data/emails.txt
ENV FIREFOX_BINARY=/usr/bin/firefox-esr
ENV GECKODRIVER_PATH=/usr/local/bin/geckodriver
VOLUME ["/data"]
EXPOSE 80
HEALTHCHECK --start-period=10s --start-interval=2s CMD \
HEALTHCHECK --start-period=60s --start-interval=2s CMD \
test "$(curl -fsS "http://127.0.0.1:$PORT/health")" = "ok"
STOPSIGNAL SIGINT
COPY src .
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh"]