FROM ubuntu:22.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y \ xfce4 xfce4-goodies \ tightvncserver \ xfonts-base \ novnc websockify \ curl wget git python3 \ sudo net-tools iputils-ping \ && apt-get clean RUN ln -s /usr/share/novnc/vnc.html /usr/share/novnc/index.html RUN useradd -m -u 1000 user USER user ENV USER=user ENV HOME=/home/user WORKDIR $HOME RUN --mount=type=secret,id=VNC_PASS,mode=0444,required=true \ mkdir -p $HOME/.vnc && \ echo "$(cat /run/secrets/VNC_PASS)" | vncpasswd -f > $HOME/.vnc/passwd && \ chmod 600 $HOME/.vnc/passwd RUN echo "#!/bin/sh\n\ xrdb \$HOME/.Xresources\n\ startxfce4 &" > $HOME/.vnc/xstartup && \ chmod +x $HOME/.vnc/xstartup RUN echo "#!/bin/bash\n\ export USER=user\n\ export HOME=/home/user\n\ vncserver :1 -geometry 1366x768 -depth 24\n\ /usr/share/novnc/utils/launch.sh --vnc localhost:5901 --listen 7860" > $HOME/start.sh RUN chmod +x $HOME/start.sh EXPOSE 7860 CMD ["./start.sh"]