mirror of
https://github.com/kasmtech/workspaces-images.git
synced 2024-10-05 09:42:00 +02:00
Merge branch 'feature/KASM-2016_ARM' into 'develop'
Resolve KASM-2016 "Feature/ arm" Closes KASM-2016 See merge request kasm-technologies/internal/workspaces-images!16
This commit is contained in:
commit
437bd60b2e
@ -1,6 +1,10 @@
|
||||
image: docker
|
||||
services:
|
||||
- docker:dind
|
||||
variables:
|
||||
DOCKER_AUTH_CONFIG: ${_DOCKER_AUTH_CONFIG}
|
||||
PLATFORM: "linux/amd64"
|
||||
ARM_BUILDS: ",chromium,firefox,ubuntu-bionic-desktop,terminal,remmina,rdesktop,"
|
||||
|
||||
stages:
|
||||
- build
|
||||
@ -14,24 +18,28 @@ before_script:
|
||||
# Jobs for the develop and release branches. They should push to the private and public repos
|
||||
build:
|
||||
stage: build
|
||||
image: kasmweb/docker-buildx-private:develop
|
||||
script:
|
||||
- BUILD_PLATFORM=$PLATFORM
|
||||
- if [[ "${ARM_BUILDS}" == *",${KASM_IMAGE},"* ]]; then BUILD_PLATFORM="linux/amd64,linux/arm64"; fi;
|
||||
- echo "Building ${KASM_IMAGE} for platforms ${BUILD_PLATFORM}"
|
||||
# to get qemu ready
|
||||
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||
# to prepare the buildx env
|
||||
- docker buildx create --use
|
||||
# Ensure readme and description files are present
|
||||
- ls docs/$KASM_IMAGE/README.md
|
||||
- ls docs/$KASM_IMAGE/description.txt
|
||||
|
||||
- docker build -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 -f dockerfile-kasm-$KASM_IMAGE --build-arg BASE_TAG="develop" .
|
||||
|
||||
- docker push ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_BRANCH
|
||||
- docker push ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH
|
||||
- docker push ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_BRANCH
|
||||
- docker push ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH
|
||||
- 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_TAG="develop" -f dockerfile-kasm-$KASM_IMAGE .
|
||||
|
||||
only:
|
||||
- develop
|
||||
- /^release\/.*$/
|
||||
except:
|
||||
- schedules
|
||||
|
||||
tags:
|
||||
- aws-autoscale
|
||||
parallel:
|
||||
matrix:
|
||||
- KASM_IMAGE: [chrome, chromium, firefox, desktop, desktop-deluxe, firefox-mobile, tor-browser, doom, edge, terminal, vmware-horizon, remmina, rdesktop, brave, discord, sublime-text, gimp, vs-code, slack, teams, only-office, zoom, signal, steam, postman, insomnia, zsnes, vlc, ubuntu-bionic-desktop, maltego, centos-7-desktop, telegram ]
|
||||
@ -43,17 +51,26 @@ build:
|
||||
|
||||
build_dev:
|
||||
stage: build
|
||||
image: kasmweb/docker-buildx-private:develop
|
||||
script:
|
||||
- BUILD_PLATFORM=$PLATFORM
|
||||
- if [[ "${ARM_BUILDS}" == *",${KASM_IMAGE},"* ]]; then BUILD_PLATFORM="linux/amd64,linux/arm64"; fi;
|
||||
- echo "Building ${KASM_IMAGE} for platforms ${BUILD_PLATFORM}"
|
||||
# to get qemu ready
|
||||
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||
# to prepare the buildx env
|
||||
- docker buildx create --use
|
||||
# Ensure readme and description files are present
|
||||
- ls docs/$KASM_IMAGE/README.md
|
||||
- ls docs/$KASM_IMAGE/description.txt
|
||||
|
||||
- docker build -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_BRANCH -f dockerfile-kasm-$KASM_IMAGE --build-arg BASE_TAG="develop" .
|
||||
|
||||
- docker push ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_BRANCH
|
||||
# Equivilant to docker build and docker push. Builds amd64 natively uses qemu for arm64.
|
||||
# The only way to push multiple architectures to the same tag is to use buildx.
|
||||
- docker buildx build --push --platform $BUILD_PLATFORM -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_BRANCH --build-arg BASE_TAG="develop" -f dockerfile-kasm-$KASM_IMAGE .
|
||||
except:
|
||||
- develop
|
||||
- /^release\/.*$/
|
||||
tags:
|
||||
- aws-autoscale
|
||||
parallel:
|
||||
matrix:
|
||||
- KASM_IMAGE: [chrome, chromium, firefox, desktop, desktop-deluxe, firefox-mobile, tor-browser, doom, edge, terminal, vmware-horizon, remmina, rdesktop, brave, discord, sublime-text, gimp, vs-code, slack, teams, only-office, zoom, signal, steam, postman, insomnia, zsnes, vlc, ubuntu-bionic-desktop, maltego, centos-7-desktop, telegram ]
|
||||
@ -62,18 +79,26 @@ build_dev:
|
||||
|
||||
# These jobs are for the "rolling" release of the images. They should only run for scheduled jobs and should only push the rolling tags
|
||||
build_schedules:
|
||||
image: kasmweb/docker-buildx-private:develop
|
||||
stage: build
|
||||
script:
|
||||
- BUILD_PLATFORM=$PLATFORM
|
||||
- if [[ "${ARM_BUILDS}" == *",${KASM_IMAGE},"* ]]; then BUILD_PLATFORM="linux/amd64,linux/arm64"; fi;
|
||||
- echo "Building ${KASM_IMAGE} for platforms ${BUILD_PLATFORM}"
|
||||
# to get qemu ready
|
||||
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||
# to prepare the buildx env
|
||||
- docker buildx create --use
|
||||
# Ensure readme and description files are present
|
||||
- ls docs/$KASM_IMAGE/README.md
|
||||
- ls docs/$KASM_IMAGE/description.txt
|
||||
|
||||
- docker build -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH -f dockerfile-kasm-$KASM_IMAGE --build-arg BASE_TAG="$SANITIZED_ROLLING_BRANCH" .
|
||||
|
||||
- docker push ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH
|
||||
- docker push ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH
|
||||
# Equivilant to docker build and docker push. Builds amd64 natively uses qemu for arm64.
|
||||
# The only way to push multiple architectures to the same tag is to use buildx.
|
||||
- docker buildx build --push --platform $BUILD_PLATFORM -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH --build-arg BASE_TAG="$SANITIZED_ROLLING_BRANCH" -f dockerfile-kasm-$KASM_IMAGE .
|
||||
only:
|
||||
- schedules
|
||||
tags:
|
||||
- aws-autoscale
|
||||
parallel:
|
||||
matrix:
|
||||
- KASM_IMAGE: [chrome, chromium, firefox, desktop, desktop-deluxe, firefox-mobile, tor-browser, doom, edge, terminal, vmware-horizon, remmina, rdesktop, brave, discord, sublime-text, gimp, vs-code, slack, teams, only-office, zoom, signal, steam, postman, insomnia, zsnes, vlc, ubuntu-bionic-desktop, maltego, centos-7-desktop, telegram ]
|
||||
@ -97,4 +122,3 @@ update_readmes:
|
||||
parallel:
|
||||
matrix:
|
||||
- KASM_IMAGE: [chrome, chromium, firefox, desktop, desktop-deluxe, firefox-mobile, tor-browser, doom, edge, terminal, vmware-horizon, remmina, rdesktop, brave, discord, sublime-text, gimp, vs-code, slack, teams, only-office, zoom, signal, steam, postman, insomnia, zsnes, vlc, ubuntu-bionic-desktop, maltego, centos-7-desktop, telegram ]
|
||||
|
||||
|
@ -4,6 +4,12 @@ set -ex
|
||||
CHROME_ARGS="--password-store=basic --no-sandbox --ignore-gpu-blocklist --user-data-dir --no-first-run --simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT'"
|
||||
CHROME_VERSION=$1
|
||||
|
||||
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
|
||||
if [ "$ARCH" == "arm64" ] ; then
|
||||
echo "Chrome not supported on arm64, skipping Chrome installation"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$DISTRO" = centos ]; then
|
||||
if [ ! -z "${CHROME_VERSION}" ]; then
|
||||
wget https://dl.google.com/linux/chrome/rpm/stable/x86_64/google-chrome-stable-${CHROME_VERSION}.x86_64.rpm -O chrome.rpm
|
||||
|
@ -27,7 +27,7 @@ fi
|
||||
if [ "$DISTRO" != centos ]; then
|
||||
# Update firefox to utilize the system certificate store instead of the one that ships with firefox
|
||||
rm /usr/lib/firefox/libnssckbi.so
|
||||
ln /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so /usr/lib/firefox/libnssckbi.so
|
||||
ln /usr/lib/$(arch)-linux-gnu/pkcs11/p11-kit-trust.so /usr/lib/firefox/libnssckbi.so
|
||||
fi
|
||||
|
||||
if [ "$DISTRO" = centos ]; then
|
||||
|
@ -3,7 +3,8 @@
|
||||
set -e
|
||||
|
||||
libgtk_deb=libgtk.deb
|
||||
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
|
||||
|
||||
wget https://kasmweb-build-artifacts.s3.amazonaws.com/kasm-gtk-3-restricted-file-chooser/de486e8c3c5f3d3c0f898fb9d6e05755897b1970/output/libgtk-3-0_3.22.30-1ubuntu4_amd64.deb -O $libgtk_deb
|
||||
wget https://kasmweb-build-artifacts.s3.amazonaws.com/kasm-gtk-3-restricted-file-chooser/5ed0c7b5bf4b56562269b3527b3446febc8bd91a/output/libgtk-3-0_3.22.30-1ubuntu4_${ARCH}.deb -O $libgtk_deb
|
||||
apt-get install -y --allow-downgrades ./"$libgtk_deb"
|
||||
rm "$libgtk_deb"
|
||||
|
@ -1,5 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
set -ex
|
||||
|
||||
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
|
||||
|
||||
if [ "${ARCH}" == "arm64" ] ; then
|
||||
echo "OBS for arm64 currently not supported, skipping install"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
apt-get update
|
||||
apt-get install -y mesa-utils libglu1-mesa-dev freeglut3-dev mesa-common-dev
|
||||
add-apt-repository -y ppa:obsproject/obs-studio
|
||||
@ -10,4 +18,4 @@ chmod +x $HOME/Desktop/com.obsproject.Studio.desktop
|
||||
|
||||
wget https://github.com/CatxFish/obs-v4l2sink/releases/download/0.1.0/obs-v4l2sink.deb
|
||||
apt-get install ./obs-v4l2sink.deb
|
||||
rm -f obs-v4l2sink.deb
|
||||
rm -f obs-v4l2sink.deb
|
||||
|
@ -1,6 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
set -ex
|
||||
curl -L -o only_office.deb "https://download.onlyoffice.com/install/desktop/editors/linux/onlyoffice-desktopeditors_amd64.deb"
|
||||
|
||||
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
|
||||
if [ "$ARCH" == "arm64" ] ; then
|
||||
echo "Only Office is not supported on arm64, skipping Only Office installation"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
curl -L -o only_office.deb "https://download.onlyoffice.com/install/desktop/editors/linux/onlyoffice-desktopeditors_${ARCH}.deb"
|
||||
apt-get update
|
||||
apt-get install -y ./only_office.deb
|
||||
rm -rf only_office.deb
|
||||
|
@ -1,7 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
set -ex
|
||||
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
|
||||
|
||||
if [ "${ARCH}" == "arm64" ] ; then
|
||||
echo "Signal for arm64 currently not supported, skipping install"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
wget -O- https://updates.signal.org/desktop/apt/keys.asc | apt-key add -
|
||||
echo "deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main" | tee -a /etc/apt/sources.list.d/signal-xenial.list
|
||||
echo "deb [arch=${ARCH}] https://updates.signal.org/desktop/apt xenial main" | tee -a /etc/apt/sources.list.d/signal-xenial.list
|
||||
apt-get update
|
||||
apt-get install -y signal-desktop maximus
|
||||
cp /usr/share/applications/signal-desktop.desktop $HOME/Desktop/
|
||||
|
@ -1,10 +1,17 @@
|
||||
#!/usr/bin/env bash
|
||||
set -ex
|
||||
wget -q https://downloads.slack-edge.com/linux_releases/slack-desktop-4.3.2-amd64.deb
|
||||
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
|
||||
|
||||
if [ "${ARCH}" == "arm64" ] ; then
|
||||
echo "Slack for arm64 currently not supported, skipping install"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
wget -q https://downloads.slack-edge.com/linux_releases/slack-desktop-4.3.2-${ARCH}.deb
|
||||
apt-get update
|
||||
apt-get install -y maximus
|
||||
apt-get install -y ./slack-desktop-4.3.2-amd64.deb
|
||||
rm slack-desktop-4.3.2-amd64.deb
|
||||
apt-get install -y ./slack-desktop-4.3.2-${ARCH}.deb
|
||||
rm slack-desktop-4.3.2-${ARCH}.deb
|
||||
sed -i 's,/usr/bin/slack,/usr/bin/slack --no-sandbox,g' /usr/share/applications/slack.desktop
|
||||
cp /usr/share/applications/slack.desktop $HOME/Desktop/
|
||||
chmod +x $HOME/Desktop/slack.desktop
|
||||
|
@ -1,8 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
set -ex
|
||||
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
|
||||
|
||||
if [ "${ARCH}" == "arm64" ] ; then
|
||||
echo "Teams for arm64 currently not supported, skipping install"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
curl -L -o teams.deb "https://go.microsoft.com/fwlink/p/?linkid=2112886&clcid=0x409&culture=en-us&country=us"
|
||||
apt-get install -y ./teams.deb
|
||||
rm teams.deb
|
||||
sed -i "s/Exec=teams/Exec=teams --no-sandbox/g" /usr/share/applications/teams.desktop
|
||||
cp /usr/share/applications/teams.desktop $HOME/Desktop/
|
||||
chmod +x $HOME/Desktop/teams.desktop
|
||||
chmod +x $HOME/Desktop/teams.desktop
|
||||
|
@ -1,6 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
set -ex
|
||||
|
||||
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
|
||||
|
||||
if [ "${ARCH}" == "arm64" ] ; then
|
||||
echo "Terraform for arm64 currently not supported, skipping install"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
curl -fsSL https://apt.releases.hashicorp.com/gpg | apt-key add -
|
||||
apt-add-repository "deb [arch=$(dpkg --print-architecture)] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
|
||||
apt-get update
|
||||
|
@ -1,12 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
set -ex
|
||||
wget -q https://update.code.visualstudio.com/latest/linux-deb-x64/stable -O vs_code_amd64.deb
|
||||
dpkg -i vs_code_amd64.deb
|
||||
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/x64/g')
|
||||
|
||||
wget -q https://update.code.visualstudio.com/latest/linux-deb-${ARCH}/stable -O vs_code.deb
|
||||
dpkg -i vs_code.deb
|
||||
sed -i 's#/usr/share/code/code#/usr/share/code/code --no-sandbox##' /usr/share/applications/code.desktop
|
||||
cp /usr/share/applications/code.desktop $HOME/Desktop
|
||||
chmod +x $HOME/Desktop/code.desktop
|
||||
chown 1000:1000 $HOME/Desktop/code.desktop
|
||||
rm vs_code_amd64.deb
|
||||
rm vs_code.deb
|
||||
|
||||
# Conveniences for python development
|
||||
apt-get update
|
||||
|
@ -1,9 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
set -ex
|
||||
wget -q https://zoom.us/client/latest/zoom_amd64.deb
|
||||
|
||||
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
|
||||
|
||||
if [ "${ARCH}" == "arm64" ] ; then
|
||||
echo "Zoom for arm64 currently not supported, skipping install"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
wget -q https://zoom.us/client/latest/zoom_${ARCH}.deb
|
||||
apt-get update
|
||||
apt-get install -y maximus
|
||||
apt-get install -y ./zoom_amd64.deb
|
||||
apt-get install -y ./zoom_${ARCH}.deb
|
||||
rm zoom_amd64.deb
|
||||
cp /usr/share/applications/Zoom.desktop $HOME/Desktop/
|
||||
chmod +x $HOME/Desktop/Zoom.desktop
|
||||
chmod +x $HOME/Desktop/Zoom.desktop
|
||||
|
Loading…
Reference in New Issue
Block a user