FROM mcr.microsoft.com/devcontainers/python:1-3.11-bullseye # Install Docker-in-Docker RUN curl -fsSL https://get.docker.com | sh # Install GUI dependencies RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ && apt-get -y install --no-install-recommends \ # VNC & GUI tigervnc-standalone-server \ tigervnc-common \ tigervnc-xorg-extension \ dbus-x11 \ # Desktop Environment xfce4 \ xfce4-goodies \ # noVNC novnc \ websockify \ # Browser & Tools firefox-esr \ chromium \ # Utilities x11-apps \ x11-utils \ x11vnc \ xvfb \ && apt-get autoremove -y && apt-get clean -y # Install Python dependencies COPY requirements.txt /tmp/pip-tmp/ RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \ && rm -rf /tmp/pip-tmp # Install Playwright browsers RUN pip install playwright \ && playwright install \ && playwright install-deps # Setup VNC RUN mkdir -p /home/vscode/.vnc \ && echo "copilot123" | vncpasswd -f > /home/vscode/.vnc/passwd \ && chmod 600 /home/vscode/.vnc/passwd \ && chown -R vscode:vscode /home/vscode/.vnc # Setup noVNC RUN ln -s /usr/share/novnc/vnc.html /usr/share/novnc/index.html # VNC startup script COPY .devcontainer/start-vnc.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/start-vnc.sh # Environment ENV DISPLAY=:1 ENV VNC_PORT=5900 ENV NOVNC_PORT=6080 ENV VNC_RESOLUTION=1920x1080 ENV VNC_PW=copilot123 USER vscode # Xfce configuration RUN mkdir -p /home/vscode/.config/xfce4/xfconf/xfce-perchannel-xml \ && echo '\n\n \n \n \n \n \n \n \n \n \n \n \n' > /home/vscode/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml EXPOSE 5900 6080