Spaces:
Paused
Paused
| FROM ubuntu:22.04 | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| ENV USER=appuser | |
| ENV HOME=/home/$USER | |
| ENV DISPLAY=:1 | |
| ENV VNC_PORT=5901 | |
| ENV NOVNC_PORT=7860 | |
| # Install dependencies | |
| RUN apt-get update && apt-get install -y \ | |
| wget gnupg curl supervisor fluxbox novnc websockify \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Install TurboVNC | |
| RUN wget https://downloads.sourceforge.net/project/turbovnc/3.1.1/turbovnc_3.1.1_amd64.deb \ | |
| && apt-get install -y ./turbovnc_3.1.1_amd64.deb \ | |
| && rm turbovnc_3.1.1_amd64.deb | |
| # Install Chrome | |
| RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \ | |
| && echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" \ | |
| > /etc/apt/sources.list.d/google-chrome.list \ | |
| && apt-get update && apt-get install -y google-chrome-stable \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Create non-root user | |
| RUN useradd -m -s /bin/bash $USER | |
| # Fluxbox config | |
| RUN mkdir -p $HOME/.fluxbox | |
| COPY fluxbox_menu $HOME/.fluxbox/menu | |
| RUN chown -R $USER:$USER $HOME/.fluxbox | |
| # Setup noVNC symlink | |
| RUN ln -s /usr/share/novnc/vnc.html /usr/share/novnc/index.html | |
| # Copy scripts & configs | |
| COPY start.sh $HOME/scripts/start.sh | |
| COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf | |
| RUN chmod +x $HOME/scripts/start.sh && chown -R $USER:$USER $HOME/scripts | |
| USER $USER | |
| WORKDIR $HOME | |
| EXPOSE $NOVNC_PORT | |
| CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"] | |