Spaces:
Paused
Paused
| FROM ubuntu:focal | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| # INSTALL SOURCES FOR CHROME REMOTE DESKTOP AND VSCODE | |
| RUN apt-get update && apt-get upgrade --assume-yes | |
| RUN apt-get --assume-yes install curl gpg wget | |
| RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg && \ | |
| mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg | |
| RUN wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - | |
| RUN echo "deb [arch=amd64] http://packages.microsoft.com/repos/vscode stable main" | \ | |
| tee /etc/apt/sources.list.d/vs-code.list | |
| RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list' | |
| # INSTALL XFCE DESKTOP AND DEPENDENCIES | |
| RUN apt-get update && apt-get upgrade --assume-yes | |
| RUN apt-get install --assume-yes --fix-missing sudo wget apt-utils xvfb xfce4 xbase-clients \ | |
| desktop-base vim xscreensaver google-chrome-stable python-psutil psmisc python3-psutil xserver-xorg-video-dummy ffmpeg | |
| RUN apt-get install --assume-yes python3-packaging python3-xdg | |
| RUN apt-get install libutempter0 | |
| RUN wget https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb | |
| RUN dpkg --install chrome-remote-desktop_current_amd64.deb | |
| RUN apt-get install --assume-yes --fix-broken | |
| RUN bash -c 'echo "exec /etc/X11/Xsession /usr/bin/xfce4-session" > /etc/chrome-remote-desktop-session' | |
| RUN apt-get install --assume-yes firefox | |
| # ---------------------------------------------------------- | |
| # SPECIFY VARIABLES FOR SETTING UP CHROME REMOTE DESKTOP | |
| ARG USER=dockerspace | |
| # use 6 digits at least | |
| ENV PIN=000000 | |
| ENV CODE=4/0AQlEd8zdOl72USP-UHHrIiEQaQYDNnlJVsAFz4cZKEZE-ECm1tRbFXTPUiLdLY1GE35MYw | |
| ENV HOSTNAME=myvirtualdesktop | |
| # ---------------------------------------------------------- | |
| # ADD USER TO THE SPECIFIED GROUPS | |
| RUN adduser --disabled-password --gecos '' $USER | |
| RUN mkhomedir_helper $USER | |
| RUN adduser $USER sudo | |
| RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers | |
| RUN usermod -aG chrome-remote-desktop $USER | |
| USER $USER | |
| WORKDIR /home/$USER | |
| RUN mkdir -p .config/chrome-remote-desktop | |
| RUN chown "$USER:$USER" .config/chrome-remote-desktop | |
| RUN chmod a+rx .config/chrome-remote-desktop | |
| RUN touch .config/chrome-remote-desktop/host.json | |
| RUN echo "/usr/bin/pulseaudio --start" > .chrome-remote-desktop-session | |
| RUN echo "startxfce4 :1030" >> .chrome-remote-desktop-session | |
| CMD \ | |
| DISPLAY= /opt/google/chrome-remote-desktop/start-host --code=$CODE --redirect-url="https://remotedesktop.google.com/_/oauthredirect" --name=$HOSTNAME --pin=$PIN ; \ | |
| HOST_HASH=$(echo -n $HOSTNAME | md5sum | cut -c -32) && \ | |
| FILENAME=.config/chrome-remote-desktop/host#${HOST_HASH}.json && echo $FILENAME && \ | |
| cp .config/chrome-remote-desktop/host#*.json $FILENAME ; \ | |
| sudo service chrome-remote-desktop stop && \ | |
| sudo service chrome-remote-desktop start && \ | |
| echo $HOSTNAME && \ | |
| sleep infinity & wait |