FROM ubuntu:22.04 ENV DEBIAN_FRONTEND=noninteractive ENV DISPLAY=:1 # 安裝必要套件 RUN apt-get update && apt-get install -y \ xfce4 \ xfce4-terminal \ tigervnc-standalone-server \ tigervnc-common \ novnc \ websockify \ dbus-x11 \ supervisor \ net-tools \ && rm -rf /var/lib/apt/lists/* # 設定 VNC 密碼 RUN mkdir -p /root/.vnc && \ echo "password" | vncpasswd -f > /root/.vnc/passwd && \ chmod 600 /root/.vnc/passwd # 建立 VNC 配置 RUN echo '#!/bin/bash\n\ vncserver -kill :1 || true\n\ rm -rf /tmp/.X1-lock /tmp/.X11-unix/X1\n\ vncserver :1 -geometry 1280x800 -depth 24 -SecurityTypes None' > /start-vnc.sh && \ chmod +x /start-vnc.sh # 建立網頁 VNC 啟動腳本 RUN echo '#!/bin/bash\n\ websockify --web=/usr/share/novnc/ --wrap-mode=ignore 6080 localhost:5901' > /start-novnc.sh && \ chmod +x /start-novnc.sh # 建立主啟動腳本 RUN echo '#!/bin/bash\n\ echo "Starting VNC server..."\n\ /start-vnc.sh\n\ echo "Starting noVNC server..."\n\ /start-novnc.sh &\n\ echo "VNC Desktop started successfully!"\n\ echo "VNC Port: 5901, noVNC Port: 6080"\n\ tail -f /dev/null' > /start-desktop.sh && \ chmod +x /start-desktop.sh EXPOSE 5901 6080 CMD ["/start-desktop.sh"]