From 640a195e3e9672dbed74308a793df75295a65a35 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Sat, 3 Jul 2021 18:13:59 +1200 Subject: [PATCH] Easy start script: choose DE to run spike --- builder/dockerfile.debian_buster.deb.test | 8 +++++ builder/startup/deb/kasmvncserver-easy-start | 35 ++++++++++++++++++++ builder/startup/vnc_startup.sh | 2 ++ 3 files changed, 45 insertions(+) diff --git a/builder/dockerfile.debian_buster.deb.test b/builder/dockerfile.debian_buster.deb.test index ef536ea..101b4a6 100644 --- a/builder/dockerfile.debian_buster.deb.test +++ b/builder/dockerfile.debian_buster.deb.test @@ -34,6 +34,9 @@ RUN apt-get purge -y pm-utils xscreensaver* RUN apt-get update && apt-get install -y vim less RUN apt-get update && apt-get -y install lsb-release +RUN apt-get update && apt-get install -y task-cinnamon-desktop +RUN apt-get update && apt-get install -y task-gnome-desktop + RUN echo 'source $STARTUPDIR/generate_container_user' >> $HOME/.bashrc RUN mkdir -p $STARTUPDIR @@ -51,4 +54,9 @@ RUN chown -R 1000:0 $HOME USER 1000:ssl-cert WORKDIR $HOME +COPY $KASMVNC_PACKAGE_DIR/xstartup $HOME/ +COPY $KASMVNC_PACKAGE_DIR/kasmvncserver-easy-start $HOME/ +RUN mkdir ~/.vnc && cp xstartup ~/.vnc/xstartup && \ + chmod +x ~/.vnc/xstartup + ENTRYPOINT [ "/dockerstartup/vnc_startup.sh" ] diff --git a/builder/startup/deb/kasmvncserver-easy-start b/builder/startup/deb/kasmvncserver-easy-start index 0d0bc88..e25f4ee 100755 --- a/builder/startup/deb/kasmvncserver-easy-start +++ b/builder/startup/deb/kasmvncserver-easy-start @@ -6,6 +6,37 @@ display=:10 interface=0.0.0.0 cert_group=ssl-cert +declare -A all_desktop_environments=([Cinnamon]=cinnamon-session) +detected_desktop_environments=() + +print_detected_desktop_environments() { + declare -i i=1 + + echo "Detected DEs:" + for detected_de in "${detected_desktop_environments[@]}"; do + echo "[$i] $detected_de" + i+=1 + done +} + +detect_desktop_environments() { + for de_name in "${!all_desktop_environments[@]}"; do + local executable=${all_desktop_environments[$de_name]} + + detected_desktop_environments+=("$de_name") + detect_desktop_environment "$de_name" "$executable" + done +} + +detect_desktop_environment() { + local de_name="$1" + local executable="$2" + + if command -v "$executable" &>/dev/null; then + echo "Detected $de_name" + fi +} + if [[ "$1" = "--help" ]]; then cat >&2 <<-USAGE Usage: `basename $0` [options] @@ -38,6 +69,10 @@ if [[ "$action" = "kill" ]]; then exit fi +detect_desktop_environments +print_detected_desktop_environments +echo "Please choose DE to run" + vncserver $display -interface $interface vncserver -kill $display vncserver $display -depth 24 -geometry 1280x1050 -websocketPort 8443 \ diff --git a/builder/startup/vnc_startup.sh b/builder/startup/vnc_startup.sh index c0c3b3c..2c0e34f 100755 --- a/builder/startup/vnc_startup.sh +++ b/builder/startup/vnc_startup.sh @@ -61,6 +61,8 @@ kasmvncpasswd -d -u "$VNC_USER-to-delete" $HOME/.kasmpasswd chmod 0600 $HOME/.kasmpasswd openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout $HOME/.vnc/self.pem -out $HOME/.vnc/self.pem -subj "/C=US/ST=VA/L=None/O=None/OU=DoFu/CN=kasm/emailAddress=none@none.none" +exec /bin/bash + vncserver :1 -interface 0.0.0.0 vncserver -kill :1