From 3aa19b051ed70ec3feb7f55a277e653f151186b9 Mon Sep 17 00:00:00 2001
From: David Beniamine <david.beniamine@tetras-libre.fr>
Date: Mon, 24 Mar 2025 11:16:55 +0100
Subject: [PATCH] Add several applications

---
 .env.sample            |  2 ++
 docker-compose.yml     |  4 +++-
 docker/kasm/Dockerfile | 39 +++++++++++++++++++++++++++++++++------
 3 files changed, 38 insertions(+), 7 deletions(-)

diff --git a/.env.sample b/.env.sample
index c42984e..cbecb63 100644
--- a/.env.sample
+++ b/.env.sample
@@ -19,3 +19,5 @@ PORT=6901
 SPYDER=true
 # Install anaconda (distribution platform for Python and R)
 ANACONDA=true
+# Install QGIS
+QGIS=true
diff --git a/docker-compose.yml b/docker-compose.yml
index fe7e2b7..f56423c 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -13,9 +13,11 @@ services:
       target: kasmvnc-base
       args:
         - SPYDER=${SPYDER}
+        - QGIS=${QGIS}
         - ANACONDA=${ANACONDA}
         - KASM_USER=${VNC_USER}
-    image: "kasmvnc-ubuntu-noble:spyder-${SPYDER}_anaconda-${ANACONDA}"
+    image: "kasmvnc-ubuntu-noble:spyder-${SPYDER}_anaconda-${ANACONDA}_QGIS-${QGIS}"
+    shm_size: '512m'
     volumes:
       - homedir:/home/:rw
     environment:
diff --git a/docker/kasm/Dockerfile b/docker/kasm/Dockerfile
index 69bcf17..7680ec0 100644
--- a/docker/kasm/Dockerfile
+++ b/docker/kasm/Dockerfile
@@ -9,6 +9,7 @@ WORKDIR $HOME
 ######### Customize Container Here ###########
 
 ARG SPYDER
+ARG QGIS
 ARG ANACONDA
 ARG ANACONDA_VERS=Anaconda3-2024.02-1
 ARG KASM_USER
@@ -16,17 +17,29 @@ ARG KASM_USER
 
 COPY firefox-deb-nosnap /etc/apt/preferences.d/firefox-deb-nosnap
 
-RUN sudo add-apt-repository ppa:mozillateam/ppa
-RUN apt-get update && \
+RUN sudo add-apt-repository ppa:mozillateam/ppa && \ 
+    apt-get update && \
     apt-get purge -y language-pack-* && \
     apt-get -y dist-upgrade && \
     apt-get install -y \
+                    autoconf \
+                    build-essential \
+                    evince \
                     firefox \
+                    gedit \
+                    git \
+                    git-cola \
+                    gnupg \
+                    htop \
                     inotify-tools \
+                    language-pack-en  \
+                    language-pack-en-base \
                     language-pack-fr \
                     language-pack-fr-base \
-                    language-pack-en  \
-                    language-pack-en-base && \
+                    libreoffice \
+                    software-properties-common \
+                    vim-nox \
+                    wget && \
     locale-gen --purge fr_FR.UTF-8 en_US.UTF-8
 
 RUN mkdir /install
@@ -35,6 +48,11 @@ RUN usermod -l $KASM_USER kasm-user; \
      for f in /dockerstartup/*.sh; do sed -i -e "s/kasm_user/$KASM_USER/g" $f; done
 
 WORKDIR /install
+
+RUN wget https://dbeaver.io/files/dbeaver-ce_latest_amd64.deb && \
+        dpkg -i dbeaver-ce_latest_amd64.deb && \
+        rm dbeaver-ce_latest_amd64.deb
+
 # === Install Spyder === #
 
 RUN if [ "$SPYDER" = true ] ; then apt-get install -y python3-spyder; fi
@@ -44,9 +62,18 @@ RUN if [ "$ANACONDA" = true ] ; then \
     wget https://repo.anaconda.com/archive/${ANACONDA_VERS}-Linux-x86_64.sh; \
     bash ${ANACONDA_VERS}-Linux-x86_64.sh -b; \
     chmod u+x $HOME/anaconda3/etc/profile.d/conda.sh; \
-    echo "source ~/anaconda3/etc/profile.d/conda.sh" >> /home/kasm-default-profile/.bashrc; \
-    echo "conda activate" >> /home/kasm-default-profile/.bashrc; \
+    echo "source ~/anaconda3/etc/profile.d/conda.sh" >> /home/kasm-user/.bashrc; \
+    echo "conda activate" >> /home/kasm-user/.bashrc; \
     rm -rf $HOME/.cache; \
+    rm ${ANACONDA_VERS}-Linux-x86_64.sh; \
+    fi
+
+# === Install QGIS === #
+RUN if [ "$QGIS" = true ] ; then \
+    wget -O /etc/apt/keyrings/qgis-archive-keyring.gpg https://download.qgis.org/downloads/qgis-archive-keyring.gpg; \
+    echo "Types: deb deb-src\nURIs: https://qgis.org/debian\nSuites: $(lsb_release -cs)\nArchitectures: amd64\nComponents: main\nSigned-By: /etc/apt/keyrings/qgis-archive-keyring.gpg" > /etc/apt/sources.list.d/qgis.sources; \
+    apt-get update; \
+    apt-get -y install qgis qgis-plugin-grass; \
     fi
 
 COPY custom_startup.sh $STARTUPDIR/custom_startup.sh
-- 
GitLab