diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5244a54..737ea98 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,7 @@ services: variables: DOCKER_AUTH_CONFIG: ${_DOCKER_AUTH_CONFIG} PLATFORM: "linux/amd64" - ARM_BUILDS: ",chromium,firefox,gimp,rdesktop,remmina,terminal,ubuntu-bionic-desktop,ubuntu-focal-desktop,vlc,vs-code,doom,sublime-text,tor-browser,java-dev,telegram,opensuse-15-desktop,oracle-8-desktop,libre-office,thunderbird,audacity,deluge,filezilla,inkscape,pinta,qbittorrent," + ARM_BUILDS: ",chromium,firefox,gimp,rdesktop,remmina,terminal,ubuntu-bionic-desktop,ubuntu-focal-desktop,ubuntu-jammy-desktop,vlc,vs-code,doom,sublime-text,tor-browser,java-dev,telegram,opensuse-15-desktop,oracle-8-desktop,libre-office,thunderbird,audacity,deluge,filezilla,inkscape,pinta,qbittorrent," CORE_IMAGE_TAG: "develop" CORE_IMAGE: "core-ubuntu-focal" USE_PRIVATE_IMAGES: 0 @@ -33,6 +33,7 @@ variables: - thunderbird - tor-browser - ubuntu-focal-desktop + - ubuntu-jammy-desktop - vlc - vs-code @@ -149,6 +150,7 @@ build_ubuntu_desktop_images: - ls docs/$KASM_IMAGE/README.md - ls docs/$KASM_IMAGE/description.txt # Check for private variable to build against private core images + - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-desktop' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; - docker buildx build --push --platform $BUILD_PLATFORM -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_BRANCH -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE=$CORE_IMAGE --build-arg BASE_TAG=$CORE_IMAGE_TAG -f dockerfile-kasm-$KASM_IMAGE . @@ -161,7 +163,7 @@ build_ubuntu_desktop_images: - aws-autoscale parallel: matrix: - - KASM_IMAGE: [desktop, desktop-deluxe, ubuntu-focal-desktop, ubuntu-focal-dind, ubuntu-focal-dind-rootless] + - KASM_IMAGE: [desktop, desktop-deluxe, ubuntu-focal-desktop, ubuntu-jammy-desktop, ubuntu-focal-dind, ubuntu-focal-dind-rootless] build_non_ubuntu: stage: build @@ -183,6 +185,7 @@ build_non_ubuntu: - if [[ $KASM_IMAGE =~ 'oracle-7-desktop' ]]; then CORE_IMAGE=core-oracle-7; fi - if [[ $KASM_IMAGE =~ 'oracle-8-desktop' ]]; then CORE_IMAGE=core-oracle-8; fi - if [[ $KASM_IMAGE =~ 'opensuse-15-desktop' ]]; then CORE_IMAGE=core-opensuse-15; fi + - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-desktop' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi # Check for private variable to build against private core images - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; @@ -212,6 +215,7 @@ build_multi_arch_dev: - if [[ $KASM_IMAGE =~ 'oracle-7-desktop' ]]; then CORE_IMAGE=core-oracle-7; fi - if [[ $KASM_IMAGE =~ 'oracle-8-desktop' ]]; then CORE_IMAGE=core-oracle-8; fi - if [[ $KASM_IMAGE =~ 'opensuse-15-desktop' ]]; then CORE_IMAGE=core-opensuse-15; fi + - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-desktop' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi # Check for private variable to build against private core images - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; - > @@ -244,6 +248,7 @@ build_single_arch_dev: - if [[ $KASM_IMAGE =~ 'oracle-7-desktop' ]]; then CORE_IMAGE=core-oracle-7; fi - if [[ $KASM_IMAGE =~ 'oracle-8-desktop' ]]; then CORE_IMAGE=core-oracle-8; fi - if [[ $KASM_IMAGE =~ 'opensuse-15-desktop' ]]; then CORE_IMAGE=core-opensuse-15; fi + - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-desktop' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi # Check for private variable to build against private core images - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; - > @@ -442,6 +447,7 @@ build_schedules_ubuntu_desktop_images: - ls docs/$KASM_IMAGE/README.md - ls docs/$KASM_IMAGE/description.txt # Check for private variable to build against private core images + - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-desktop' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; # Equivalent to docker build and docker push. Builds amd64 natively uses qemu for arm64. @@ -453,7 +459,7 @@ build_schedules_ubuntu_desktop_images: - aws-autoscale parallel: matrix: - - KASM_IMAGE: [desktop, desktop-deluxe, ubuntu-focal-desktop, ubuntu-focal-dind, ubuntu-focal-dind-rootless] + - KASM_IMAGE: [desktop, desktop-deluxe, ubuntu-focal-desktop, ubuntu-jammy-desktop, ubuntu-focal-dind, ubuntu-focal-dind-rootless] build_schedules_non_ubuntu: image: ${ORG_NAME}/docker-buildx-private:develop @@ -563,6 +569,7 @@ update_readmes: - tor-browser - tracelabs - ubuntu-focal-desktop + - ubuntu-jammy-desktop - ubuntu-focal-dind - ubuntu-focal-dind-rootless - vlc diff --git a/dockerfile-kasm-ubuntu-jammy-desktop b/dockerfile-kasm-ubuntu-jammy-desktop new file mode 100644 index 0000000..cb0c91b --- /dev/null +++ b/dockerfile-kasm-ubuntu-jammy-desktop @@ -0,0 +1,109 @@ +ARG BASE_TAG="develop" +ARG BASE_IMAGE="core-ubuntu-jammy" +FROM kasmweb/$BASE_IMAGE:$BASE_TAG + +USER root + +ENV HOME /home/kasm-default-profile +ENV STARTUPDIR /dockerstartup +WORKDIR $HOME + +### Envrionment config +ENV DEBIAN_FRONTEND noninteractive +ENV KASM_RX_HOME $STARTUPDIR/kasmrx +ENV INST_SCRIPTS $STARTUPDIR/install + + +### Install Tools +COPY ./src/ubuntu/install/tools $INST_SCRIPTS/tools/ +RUN bash $INST_SCRIPTS/tools/install_tools_deluxe.sh && rm -rf $INST_SCRIPTS/tools/ + +# Install Utilities +COPY ./src/ubuntu/install/misc $INST_SCRIPTS/misc/ +RUN bash $INST_SCRIPTS/misc/install_tools.sh && rm -rf $INST_SCRIPTS/misc/ + +# Install Google Chrome +COPY ./src/ubuntu/install/chrome $INST_SCRIPTS/chrome/ +RUN bash $INST_SCRIPTS/chrome/install_chrome.sh && rm -rf $INST_SCRIPTS/chrome/ + +# Install Firefox +COPY ./src/ubuntu/install/firefox/ $INST_SCRIPTS/firefox/ +COPY ./src/ubuntu/install/firefox/firefox.desktop $HOME/Desktop/ +RUN bash $INST_SCRIPTS/firefox/install_firefox.sh && rm -rf $INST_SCRIPTS/firefox/ + +### Install Sublime Text +COPY ./src/ubuntu/install/sublime_text $INST_SCRIPTS/sublime_text/ +RUN bash $INST_SCRIPTS/sublime_text/install_sublime_text.sh && rm -rf $INST_SCRIPTS/sublime_text/ + + +### Install Visual Studio Code +COPY ./src/ubuntu/install/vs_code $INST_SCRIPTS/vs_code/ +RUN bash $INST_SCRIPTS/vs_code/install_vs_code.sh && rm -rf $INST_SCRIPTS/vs_code/ + + +### Install Slack +COPY ./src/ubuntu/install/slack $INST_SCRIPTS/slack/ +RUN bash $INST_SCRIPTS/slack/install_slack.sh && rm -rf $INST_SCRIPTS/slack/ + + +### Install NextCloud +COPY ./src/ubuntu/install/nextcloud $INST_SCRIPTS/nextcloud/ +RUN bash $INST_SCRIPTS/nextcloud/install_nextcloud.sh && rm -rf $INST_SCRIPTS/nextcloud/ + + +### Install Remmina +COPY ./src/ubuntu/install/remmina $INST_SCRIPTS/remmina/ +RUN bash $INST_SCRIPTS/remmina/install_remmina.sh && rm -rf $INST_SCRIPTS/remmina/ + +### Install Teams +COPY ./src/ubuntu/install/teams $INST_SCRIPTS/teams/ +RUN bash $INST_SCRIPTS/teams/install_teams.sh && rm -rf $INST_SCRIPTS/teams/ + +### Install Only Office +COPY ./src/ubuntu/install/only_office $INST_SCRIPTS/only_office/ +RUN bash $INST_SCRIPTS/only_office/install_only_office.sh && rm -rf $INST_SCRIPTS/only_office/ + +### Install Signal +COPY ./src/ubuntu/install/signal $INST_SCRIPTS/signal/ +RUN bash $INST_SCRIPTS/signal/install_signal.sh && rm -rf $INST_SCRIPTS/signal/ + +### Install GIMP +COPY ./src/ubuntu/install/gimp $INST_SCRIPTS/gimp/ +RUN bash $INST_SCRIPTS/gimp/install_gimp.sh && rm -rf $INST_SCRIPTS/gimp/ + +### Install Zoom +COPY ./src/ubuntu/install/zoom $INST_SCRIPTS/zoom/ +RUN bash $INST_SCRIPTS/zoom/install_zoom.sh && rm -rf $INST_SCRIPTS/zoom/ + +### Install OBS Studio +COPY ./src/ubuntu/install/obs $INST_SCRIPTS/obs/ +RUN bash $INST_SCRIPTS/obs/install_obs.sh && rm -rf $INST_SCRIPTS/obs/ + +### Install Ansible +COPY ./src/ubuntu/install/ansible $INST_SCRIPTS/ansible/ +RUN bash $INST_SCRIPTS/ansible/install_ansible.sh && rm -rf $INST_SCRIPTS/ansible/ + +### Install Terraform +COPY ./src/ubuntu/install/terraform $INST_SCRIPTS/terraform/ +RUN bash $INST_SCRIPTS/terraform/install_terraform.sh && rm -rf $INST_SCRIPTS/terraform/ + +### Install Telegram +COPY ./src/ubuntu/install/telegram $INST_SCRIPTS/telegram/ +RUN bash $INST_SCRIPTS/telegram/install_telegram.sh && rm -rf $INST_SCRIPTS/telegram/ + +### Install Thunderbird +COPY ./src/ubuntu/install/thunderbird $INST_SCRIPTS/thunderbird/ +RUN bash $INST_SCRIPTS/thunderbird/install_thunderbird.sh && rm -rf $INST_SCRIPTS/thunderbird/ + +#ADD ./src/common/scripts $STARTUPDIR +RUN $STARTUPDIR/set_user_permission.sh $HOME + +RUN chown 1000:0 $HOME + +ENV HOME /home/kasm-user +WORKDIR $HOME +RUN mkdir -p $HOME && chown -R 1000:0 $HOME + +USER 1000 + +CMD ["--tail-log"] diff --git a/docs/ubuntu-jammy-desktop/README.md b/docs/ubuntu-jammy-desktop/README.md new file mode 100644 index 0000000..3698b48 --- /dev/null +++ b/docs/ubuntu-jammy-desktop/README.md @@ -0,0 +1,7 @@ +# About This Image + +This Image contains a browser-accessible Ubuntu Jammy Desktop with various productivity and development apps installed. + +![Screenshot][Image_Screenshot] + +[Image_Screenshot]: https://5856039.fs1.hubspotusercontent-na1.net/hubfs/5856039/dockerhub/image-screenshots/ubuntu_jammy_desktop.png "Image Screenshot" diff --git a/docs/ubuntu-jammy-desktop/description.txt b/docs/ubuntu-jammy-desktop/description.txt new file mode 100644 index 0000000..91d23d4 --- /dev/null +++ b/docs/ubuntu-jammy-desktop/description.txt @@ -0,0 +1 @@ +Ubuntu productivity desktop for Kasm Workspaces \ No newline at end of file diff --git a/src/ubuntu/install/firefox/install_firefox.sh b/src/ubuntu/install/firefox/install_firefox.sh index 5405f2c..690cfa7 100644 --- a/src/ubuntu/install/firefox/install_firefox.sh +++ b/src/ubuntu/install/firefox/install_firefox.sh @@ -16,6 +16,16 @@ if [[ "${DISTRO}" == @(centos|oracle7|oracle8) ]]; then fi elif [ "${DISTRO}" == "opensuse" ]; then zypper install -yn p11-kit-tools MozillaFirefox +elif grep -q Jammy /etc/os-release; then + if [ ! -f '/etc/apt/preferences.d/mozilla-firefox' ]; then + add-apt-repository -y ppa:mozillateam/ppa + echo ' +Package: * +Pin: release o=LP-PPA-mozillateam +Pin-Priority: 1001 +' > /etc/apt/preferences.d/mozilla-firefox + fi + apt-get install -y firefox p11-kit-modules else apt-mark unhold firefox apt-get remove firefox @@ -34,7 +44,7 @@ elif [ "${DISTRO}" == "opensuse" ]; then else if [ "$ARCH" == "arm64" ] && [ "$(lsb_release -cs)" == "focal" ] ; then echo "Firefox flash player not supported on arm64 Ubuntu Focal Skipping" - else + elif ! grep -q Jammy /etc/os-release; then # Plugin to support running flash videos for sites like vimeo apt-get update apt-get install -y browser-plugin-freshplayer-pepperflash diff --git a/src/ubuntu/install/thunderbird/install_thunderbird.sh b/src/ubuntu/install/thunderbird/install_thunderbird.sh index 4a6f2cf..987c799 100644 --- a/src/ubuntu/install/thunderbird/install_thunderbird.sh +++ b/src/ubuntu/install/thunderbird/install_thunderbird.sh @@ -15,6 +15,14 @@ elif [ "${DISTRO}" == "opensuse" ]; then zypper clean --all else apt-get update + if [ ! -f '/etc/apt/preferences.d/mozilla-firefox' ]; then + add-apt-repository -y ppa:mozillateam/ppa + echo ' +Package: * +Pin: release o=LP-PPA-mozillateam +Pin-Priority: 1001 +' > /etc/apt/preferences.d/mozilla-firefox + fi apt-get install -y thunderbird rm -rf \ /var/lib/apt/lists/* \