web3 / Dockerfile
Alvin3y1's picture
Update Dockerfile
8a41dce verified
FROM python:3.11-slim-bookworm
# 1. Install System Dependencies
# Added 'fluxbox' (Window Manager) - CRITICAL for browser rendering
# Added 'xdotool' for input simulation/wake-up
RUN apt-get update && apt-get install -y \
xvfb \
fluxbox \
xdotool \
wget \
curl \
gnupg \
procps \
libx11-6 \
libxtst6 \
libxext6 \
libxrender1 \
libxi6 \
# Opera/Chrome Dependencies
libnss3 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libcups2 \
libdrm2 \
libgbm1 \
libasound2 \
libpangocairo-1.0-0 \
libgtk-3-0 \
fonts-liberation \
xdg-utils \
&& rm -rf /var/lib/apt/lists/*
# 2. Install Opera Browser
RUN curl -fsSL https://deb.opera.com/archive.key | gpg --dearmor -o /usr/share/keyrings/opera-browser-keyring.gpg && \
echo "deb [signed-by=/usr/share/keyrings/opera-browser-keyring.gpg] https://deb.opera.com/opera-stable/ stable non-free" \
| tee /etc/apt/sources.list.d/opera-stable.list && \
apt-get update && \
apt-get install -y opera-stable
# 3. Setup User
RUN useradd -m -u 1000 user
WORKDIR /home/user/app
# 4. Install Python Libraries
RUN pip3 install --no-cache-dir \
aiortc \
aiohttp \
mss \
numpy \
pillow \
python-xlib \
uvloop
# 5. Finalize Setup
COPY --chown=user:user . .
USER user
ENV DISPLAY=:99
ENV PYTHONUNBUFFERED=1
EXPOSE 7860
CMD ["python3", "app.py"]