|
|
FROM python:3.11-slim |
|
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive |
|
|
|
|
|
RUN apt-get update && apt-get install -y \ |
|
|
wget \ |
|
|
gnupg \ |
|
|
ca-certificates \ |
|
|
fonts-liberation \ |
|
|
libasound2 \ |
|
|
libatk-bridge2.0-0 \ |
|
|
libatk1.0-0 \ |
|
|
libatspi2.0-0 \ |
|
|
libcups2 \ |
|
|
libdbus-1-3 \ |
|
|
libdrm2 \ |
|
|
libgbm1 \ |
|
|
libgtk-3-0 \ |
|
|
libnspr4 \ |
|
|
libnss3 \ |
|
|
libwayland-client0 \ |
|
|
libxcomposite1 \ |
|
|
libxdamage1 \ |
|
|
libxfixes3 \ |
|
|
libxkbcommon0 \ |
|
|
libxrandr2 \ |
|
|
xdg-utils \ |
|
|
libx11-xcb1 \ |
|
|
libxcb1 \ |
|
|
libxcursor1 \ |
|
|
libxi6 \ |
|
|
libxtst6 \ |
|
|
libpango-1.0-0 \ |
|
|
libcairo2 \ |
|
|
libgdk-pixbuf-2.0-0 \ |
|
|
xvfb \ |
|
|
x11vnc \ |
|
|
fluxbox \ |
|
|
dbus-x11 \ |
|
|
&& rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
RUN apt-get update && apt-get install -y \ |
|
|
firefox-esr \ |
|
|
&& rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
|
|
|
RUN pip install --no-cache-dir Flask flask-cors camoufox[geoip] asyncio Pillow |
|
|
|
|
|
RUN mkdir -p /root/.cache/camoufox && chmod -R 777 /root/.cache/camoufox |
|
|
|
|
|
RUN python3 -c "from camoufox.sync_api import Camoufox; Camoufox.install()" || echo "Camoufox install failed" |
|
|
RUN python3 -c "from camoufox.pkgman import install_geoip; install_geoip()" || echo "GeoIP install failed, continuing without it" |
|
|
|
|
|
COPY . . |
|
|
|
|
|
RUN mkdir -p public |
|
|
|
|
|
ENV DISPLAY=:99 |
|
|
ENV CAMOUFOX_HEADLESS=true |
|
|
ENV PYTHONUNBUFFERED=1 |
|
|
ENV CAMOUFOX_CACHE_DIR=/root/.cache/camoufox |
|
|
|
|
|
RUN echo '#!/bin/bash\n\ |
|
|
rm -rf /root/.cache/camoufox/gmp-clearkey 2>/dev/null || true\n\ |
|
|
rm -rf /root/.cache/camoufox/.lock 2>/dev/null || true\n\ |
|
|
Xvfb :99 -screen 0 1920x1080x24 -ac +extension GLX +render -noreset &\n\ |
|
|
sleep 2\n\ |
|
|
python app.py' > /app/start.sh && chmod +x /app/start.sh |
|
|
|
|
|
RUN camoufox fetch |
|
|
|
|
|
EXPOSE 7860 |
|
|
|
|
|
CMD ["/app/start.sh"] |