Browser_F / Dockerfile
Shinhati2023's picture
Rename Dockerfilei to Dockerfile
5e33ae9 verified
# Use NVIDIA CUDA base for GPU support
FROM nvidia/cuda:11.8.0-runtime-ubuntu22.04
# Set non-interactive installation
ENV DEBIAN_FRONTEND=noninteractive
# 1. Install System Dependencies
RUN apt-get update && apt-get install -y \
wget \
curl \
unzip \
xz-utils \
xvfb \
libgbm1 \
libgtk-3-0 \
libnss3 \
libasound2 \
pulseaudio \
python3 \
python3-pip \
dbus-x11 \
ffmpeg \
ca-certificates \
ssl-cert \
libswitch-perl \
libyaml-tiny-perl \
libhash-merge-simple-perl \
liblist-moreutils-perl \
libtry-tiny-perl \
libdatetime-timezone-perl \
# Add 'debconf-utils' to allow us to pre-seed answers
debconf-utils \
&& rm -rf /var/lib/apt/lists/*
# 2. Install KasmVNC (THE NUCLEAR FIX)
RUN wget https://github.com/kasmtech/KasmVNC/releases/download/v1.3.1/kasmvncserver_jammy_1.3.1_amd64.deb
# --- PRE-SEEDING ANSWERS ---
# This block tells the system: "When kasmvncserver asks about 'daemon_user_write', answer 'false' (Option 2)"
RUN echo "kasmvncserver kasmvncserver/daemon_user_write boolean false" | debconf-set-selections && \
echo "kasmvncserver kasmvncserver/default_user_write boolean false" | debconf-set-selections
# Now we install, and it should see the answer is already there.
RUN apt-get install -y ./kasmvncserver_*.deb || apt-get install -f -y && \
rm kasmvncserver_*.deb
# 3. Install Python libraries
RUN pip3 install requests yt-dlp
# 4. Setup User
RUN useradd -m -u 1000 user
USER user
ENV HOME=/home/user
WORKDIR $HOME
# 5. Download Chromium
RUN LAST_CHANGE=$(curl -sS https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2FLAST_CHANGE?alt=media) && \
echo "Downloading Chromium Build: $LAST_CHANGE" && \
wget -q "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F${LAST_CHANGE}%2Fchrome-linux.zip?alt=media" -O chrome-linux.zip && \
unzip -q chrome-linux.zip && \
rm chrome-linux.zip && \
chmod +x /home/user/chrome-linux/chrome
# 6. Prepare Start Script
COPY --chown=user start.sh /start.sh
RUN chmod +x /start.sh
# 7. Expose Port
EXPOSE 7860
CMD ["/start.sh"]