mirror of
https://github.com/kasmtech/workspaces-images.git
synced 2024-11-21 23:53:10 +01:00
Resolve KASM-2779 "Feature/ jammy desktop image"
This commit is contained in:
parent
57439fb124
commit
b42dc8d50a
@ -4,7 +4,7 @@ services:
|
|||||||
variables:
|
variables:
|
||||||
DOCKER_AUTH_CONFIG: ${_DOCKER_AUTH_CONFIG}
|
DOCKER_AUTH_CONFIG: ${_DOCKER_AUTH_CONFIG}
|
||||||
PLATFORM: "linux/amd64"
|
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_TAG: "develop"
|
||||||
CORE_IMAGE: "core-ubuntu-focal"
|
CORE_IMAGE: "core-ubuntu-focal"
|
||||||
USE_PRIVATE_IMAGES: 0
|
USE_PRIVATE_IMAGES: 0
|
||||||
@ -33,6 +33,7 @@ variables:
|
|||||||
- thunderbird
|
- thunderbird
|
||||||
- tor-browser
|
- tor-browser
|
||||||
- ubuntu-focal-desktop
|
- ubuntu-focal-desktop
|
||||||
|
- ubuntu-jammy-desktop
|
||||||
- vlc
|
- vlc
|
||||||
- vs-code
|
- vs-code
|
||||||
|
|
||||||
@ -149,6 +150,7 @@ build_ubuntu_desktop_images:
|
|||||||
- ls docs/$KASM_IMAGE/README.md
|
- ls docs/$KASM_IMAGE/README.md
|
||||||
- ls docs/$KASM_IMAGE/description.txt
|
- ls docs/$KASM_IMAGE/description.txt
|
||||||
# Check for private variable to build against private core images
|
# 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;
|
- 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 .
|
- 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
|
- aws-autoscale
|
||||||
parallel:
|
parallel:
|
||||||
matrix:
|
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:
|
build_non_ubuntu:
|
||||||
stage: build
|
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-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 =~ '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 =~ '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
|
# Check for private variable to build against private core images
|
||||||
- if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi;
|
- 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-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 =~ '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 =~ '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
|
# Check for private variable to build against private core images
|
||||||
- if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi;
|
- 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-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 =~ '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 =~ '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
|
# Check for private variable to build against private core images
|
||||||
- if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi;
|
- 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/README.md
|
||||||
- ls docs/$KASM_IMAGE/description.txt
|
- ls docs/$KASM_IMAGE/description.txt
|
||||||
# Check for private variable to build against private core images
|
# 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;
|
- 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.
|
# 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
|
- aws-autoscale
|
||||||
parallel:
|
parallel:
|
||||||
matrix:
|
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:
|
build_schedules_non_ubuntu:
|
||||||
image: ${ORG_NAME}/docker-buildx-private:develop
|
image: ${ORG_NAME}/docker-buildx-private:develop
|
||||||
@ -563,6 +569,7 @@ update_readmes:
|
|||||||
- tor-browser
|
- tor-browser
|
||||||
- tracelabs
|
- tracelabs
|
||||||
- ubuntu-focal-desktop
|
- ubuntu-focal-desktop
|
||||||
|
- ubuntu-jammy-desktop
|
||||||
- ubuntu-focal-dind
|
- ubuntu-focal-dind
|
||||||
- ubuntu-focal-dind-rootless
|
- ubuntu-focal-dind-rootless
|
||||||
- vlc
|
- vlc
|
||||||
|
109
dockerfile-kasm-ubuntu-jammy-desktop
Normal file
109
dockerfile-kasm-ubuntu-jammy-desktop
Normal file
@ -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"]
|
7
docs/ubuntu-jammy-desktop/README.md
Normal file
7
docs/ubuntu-jammy-desktop/README.md
Normal file
@ -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"
|
1
docs/ubuntu-jammy-desktop/description.txt
Normal file
1
docs/ubuntu-jammy-desktop/description.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Ubuntu productivity desktop for Kasm Workspaces
|
@ -16,6 +16,16 @@ if [[ "${DISTRO}" == @(centos|oracle7|oracle8) ]]; then
|
|||||||
fi
|
fi
|
||||||
elif [ "${DISTRO}" == "opensuse" ]; then
|
elif [ "${DISTRO}" == "opensuse" ]; then
|
||||||
zypper install -yn p11-kit-tools MozillaFirefox
|
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
|
else
|
||||||
apt-mark unhold firefox
|
apt-mark unhold firefox
|
||||||
apt-get remove firefox
|
apt-get remove firefox
|
||||||
@ -34,7 +44,7 @@ elif [ "${DISTRO}" == "opensuse" ]; then
|
|||||||
else
|
else
|
||||||
if [ "$ARCH" == "arm64" ] && [ "$(lsb_release -cs)" == "focal" ] ; then
|
if [ "$ARCH" == "arm64" ] && [ "$(lsb_release -cs)" == "focal" ] ; then
|
||||||
echo "Firefox flash player not supported on arm64 Ubuntu Focal Skipping"
|
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
|
# Plugin to support running flash videos for sites like vimeo
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get install -y browser-plugin-freshplayer-pepperflash
|
apt-get install -y browser-plugin-freshplayer-pepperflash
|
||||||
|
@ -15,6 +15,14 @@ elif [ "${DISTRO}" == "opensuse" ]; then
|
|||||||
zypper clean --all
|
zypper clean --all
|
||||||
else
|
else
|
||||||
apt-get update
|
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
|
apt-get install -y thunderbird
|
||||||
rm -rf \
|
rm -rf \
|
||||||
/var/lib/apt/lists/* \
|
/var/lib/apt/lists/* \
|
||||||
|
Loading…
Reference in New Issue
Block a user