wep2 / Dockerfile
Alvin3y1's picture
Update Dockerfile
4664001 verified
FROM python:3.11-slim-bullseye
ENV DEBIAN_FRONTEND=noninteractive
# 1. Install Build Tools and Dependencies
RUN apt-get update && apt-get install -y \
build-essential \
git \
libvncserver-dev \
libx11-dev \
xvfb \
matchbox-window-manager \
# Browser & WebRTC dependencies
libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev \
libavutil-dev libswscale-dev libswresample-dev libvpx-dev \
libopus-dev libssl-dev libxcomposite1 libxcursor1 libxdamage1 \
libxi6 libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 \
libgbm1 libasound2 libpangocairo-1.0-0 libgtk-3-0 \
fonts-liberation fonts-noto-color-emoji \
wget curl gnupg procps \
&& rm -rf /var/lib/apt/lists/*
# 2. Build the Custom VNC Tool
COPY minivnc.c /tmp/minivnc.c
RUN gcc -o /usr/local/bin/minivnc /tmp/minivnc.c -lrfb -lX11
# 3. Install Opera
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 && \
rm -rf /var/lib/apt/lists/*
# 4. Setup User
RUN useradd -m -u 1000 user
USER user
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH
WORKDIR $HOME/app
COPY --chown=user:user requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY --chown=user:user app.py .
RUN mkdir -p $HOME/opera-data
ENV DISPLAY=:99
EXPOSE 7860
CMD ["python", "app.py"]