Poweruser01 commited on
Commit
882e7ca
·
verified ·
1 Parent(s): 2e08640

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +67 -0
Dockerfile ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Use Ubuntu 22.04 as the base image for compatibility and minimal size
2
+ FROM ubuntu:22.04
3
+
4
+ # Set environment variables for non-interactive installation
5
+ ENV DEBIAN_FRONTEND=noninteractive
6
+ ENV USER=appuser
7
+ ENV HOME=/home/$USER
8
+ ENV DISPLAY=:1
9
+ ENV VNC_PORT=5901
10
+ ENV NOVNC_PORT=7860
11
+ ENV X11VNC_LOG=/tmp/x11vnc.log
12
+
13
+ # Install dependencies: Xvfb, Fluxbox, x11vnc, noVNC, and utilities
14
+ RUN apt-get update && apt-get install -y \
15
+ wget \
16
+ gnupg \
17
+ curl \
18
+ xvfb \
19
+ fluxbox \
20
+ x11vnc \
21
+ novnc \
22
+ && rm -rf /var/lib/apt/lists/*
23
+
24
+ # Install Brave Browser
25
+ RUN curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg \
26
+ && echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main" | tee /etc/apt/sources.list.d/brave-browser-release.list \
27
+ && apt-get update \
28
+ && apt-get install -y brave-browser \
29
+ && rm -rf /var/lib/apt/lists/*
30
+
31
+ # Install TeamViewer
32
+ RUN wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb \
33
+ && apt-get update \
34
+ && apt-get install -y ./teamviewer_amd64.deb \
35
+ && rm teamviewer_amd64.deb \
36
+ && rm -rf /var/lib/apt/lists/*
37
+
38
+ # Create a non-root user
39
+ RUN useradd -m -s /bin/bash $USER
40
+
41
+ # Fix permissions for X11 socket directory
42
+ RUN mkdir -p /tmp/.X11-unix \
43
+ && chmod 1777 /tmp/.X11-unix \
44
+ && chown $USER:$USER /tmp/.X11-unix
45
+
46
+ # Create a minimal Fluxbox config to suppress warnings
47
+ RUN mkdir -p $HOME/.fluxbox
48
+ COPY fluxbox_menu $HOME/.fluxbox/menu
49
+ RUN chown -R $USER:$USER $HOME/.fluxbox
50
+
51
+ # Set up noVNC web interface
52
+ RUN ln -s /usr/share/novnc/vnc.html /usr/share/novnc/index.html
53
+
54
+ # Copy a startup script to run Brave in VNC
55
+ RUN mkdir -p $HOME/scripts
56
+ COPY start.sh $HOME/scripts/start.sh
57
+ RUN chmod +x $HOME/scripts/start.sh
58
+
59
+ # Switch to non-root user
60
+ USER $USER
61
+ WORKDIR $HOME
62
+
63
+ # Expose port 7860 for noVNC (Hugging Face Spaces default)
64
+ EXPOSE $NOVNC_PORT
65
+
66
+ # Start the VNC server, noVNC, and Brave
67
+ CMD ["/home/appuser/scripts/start.sh"]