Merge branch 'feature/VNC-382-build-for-ubuntu-26-resolute-raccoon' into 'master'

VNC-382 CI: build Ubuntu 26 Resolute Raccoon

Closes VNC-382

See merge request kasm-technologies/internal/KasmVNC!250
This commit is contained in:
Matthew McClaskey 2026-07-17 13:13:02 +00:00
commit f77a5ca3e8
8 changed files with 196 additions and 15 deletions

View file

@ -64,45 +64,48 @@ stages:
- DISTRO: 'ubuntu noble'
DISTRO_SLUG: 'ubuntu_noble'
GROUP: 2
- DISTRO: 'ubuntu resolute'
DISTRO_SLUG: 'ubuntu_resolute'
GROUP: 3
- DISTRO: 'debian bullseye'
DISTRO_SLUG: 'debian_bullseye'
GROUP: 3
GROUP: 4
- DISTRO: 'debian bookworm'
DISTRO_SLUG: 'debian_bookworm'
GROUP: 4
GROUP: 5
- DISTRO: 'debian trixie'
DISTRO_SLUG: 'debian_trixie'
GROUP: 5
GROUP: 6
- DISTRO: 'kali kali-rolling'
DISTRO_SLUG: 'kali_kali-rolling'
GROUP: 6
GROUP: 7
- DISTRO: 'oracle 8'
DISTRO_SLUG: 'oracle_8'
GROUP: 7
GROUP: 8
- DISTRO: 'oracle 9'
DISTRO_SLUG: 'oracle_9'
GROUP: 8
GROUP: 9
- DISTRO: 'opensuse 15'
DISTRO_SLUG: 'opensuse_15'
GROUP: 9
GROUP: 10
- DISTRO: 'opensuse 16'
DISTRO_SLUG: 'opensuse_16'
GROUP: 10
GROUP: 11
- DISTRO: 'fedora 42'
DISTRO_SLUG: 'fedora_42'
GROUP: 11
GROUP: 12
- DISTRO: 'fedora 43'
DISTRO_SLUG: 'fedora_43'
GROUP: 12
GROUP: 13
- DISTRO: 'alpine 321'
DISTRO_SLUG: 'alpine_321'
GROUP: 13
GROUP: 14
- DISTRO: 'alpine 322'
DISTRO_SLUG: 'alpine_322'
GROUP: 14
GROUP: 15
- DISTRO: 'alpine 323'
DISTRO_SLUG: 'alpine_323'
GROUP: 15
GROUP: 16
default:
retry: 2

View file

@ -5,7 +5,11 @@ ENV KASMVNC_BUILD_OS_CODENAME 16
ENV XORG_VER 21.1.15
# Install depends
RUN zypper install -ny \
RUN sed -i 's|cdn.opensuse.org|downloadcontent.opensuse.org|g' \
/etc/zypp/repos.d/*.repo \
/usr/share/zypp/local/service/openSUSE/repo/*.xml && \
zypper refresh && \
zypper install -ny \
bdftopcf \
ninja \
nasm \

View file

@ -3,7 +3,11 @@ FROM opensuse/leap:16.0
ENV KASMVNC_BUILD_OS opensuse
ENV KASMVNC_BUILD_OS_CODENAME 16
RUN zypper -n install -y \
RUN sed -i 's|cdn.opensuse.org|downloadcontent.opensuse.org|g' \
/etc/zypp/repos.d/*.repo \
/usr/share/zypp/local/service/openSUSE/repo/*.xml && \
zypper refresh && \
zypper -n install -y \
gpg* \
less \
lsb-release \

View file

@ -0,0 +1 @@
dockerfile.debian.barebones.deb.test

View file

@ -0,0 +1,45 @@
FROM ubuntu:resolute
ENV KASMVNC_BUILD_OS ubuntu
ENV KASMVNC_BUILD_OS_CODENAME resolute
ENV XORG_VER 21.1.22
ENV DEBIAN_FRONTEND noninteractive
RUN sed -i 's$Types: deb$Types: deb deb-src$' /etc/apt/sources.list.d/ubuntu.sources
RUN apt-get update && \
apt-get -y install sudo
RUN apt-get update && apt-get install -y --no-install-recommends tzdata
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
RUN apt-get update && apt-get -y install ninja-build cmake nasm sccache git libgnutls28-dev vim wget curl
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev \
libxcursor-dev libavformat-dev libswscale-dev libva-dev libcrypt-dev
# x86_64 specific operations
RUN if [ "$(arch)" = "x86_64" ]; then \
apt-get update && apt-get install -y intel-media-va-driver-non-free; \
fi
RUN ARCH=$(arch) && \
CMAKE_URL="https://cmake.org/files/v3.22/cmake-3.22.0" && \
if [ "$ARCH" = "x86_64" ]; then \
CMAKE_URL="${CMAKE_URL}-linux-x86_64.sh"; \
elif [ "$ARCH" = "aarch64" ]; then \
CMAKE_URL="${CMAKE_URL}-linux-aarch64.sh"; \
else \
echo "Unsupported architecture: $ARCH" && exit 1; \
fi && \
curl -fsSL $CMAKE_URL -o cmake.sh && \
(echo y; echo n) | bash cmake.sh --prefix=/usr/local --skip-license && \
rm cmake.sh
ENV SCRIPTS_DIR=/tmp/scripts
COPY builder/scripts $SCRIPTS_DIR
ARG OUTPUT_OWNER_UID
RUN $SCRIPTS_DIR/add-docker-user "$OUTPUT_OWNER_UID"
COPY --chown=$OUTPUT_OWNER_UID . /src/
ENTRYPOINT ["/src/builder/build.sh"]

View file

@ -0,0 +1,16 @@
FROM ubuntu:resolute
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && \
apt-get -y install vim build-essential devscripts equivs
# Install build-deps for the package.
COPY ./debian/control /tmp
RUN apt-get update && echo YYY | mk-build-deps --install --remove /tmp/control
ENV SCRIPTS_DIR=/tmp/scripts
COPY builder/scripts $SCRIPTS_DIR
ARG OUTPUT_OWNER_UID
RUN $SCRIPTS_DIR/add-docker-user "$OUTPUT_OWNER_UID"

View file

@ -0,0 +1,57 @@
FROM ubuntu:resolute
ENV DISPLAY=:1 \
VNC_PORT=8443 \
VNC_RESOLUTION=1280x720 \
MAX_FRAME_RATE=24 \
VNCOPTIONS="-PreferBandwidth -DynamicQualityMin=4 -DynamicQualityMax=7" \
HOME=/home/user \
TERM=xterm \
STARTUPDIR=/dockerstartup \
INST_SCRIPTS=/dockerstartup/install \
KASM_RX_HOME=/dockerstartup/kasmrx \
DEBIAN_FRONTEND=noninteractive \
VNC_COL_DEPTH=24 \
VNC_RESOLUTION=1280x1024 \
VNC_PW=vncpassword \
VNC_USER=user \
VNC_VIEW_ONLY_PW=vncviewonlypassword \
LD_LIBRARY_PATH=/usr/local/lib/ \
OMP_WAIT_POLICY=PASSIVE \
SHELL=/bin/bash \
SINGLE_APPLICATION=0 \
KASMVNC_BUILD_OS=ubuntu \
KASMVNC_BUILD_OS_CODENAME=resolute
EXPOSE $VNC_PORT
WORKDIR $HOME
### REQUIRED STUFF ###
RUN apt-get update && apt-get install -y supervisor xfce4 xfce4-terminal xterm libnss-wrapper gettext wget dbus-x11
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 echo 'source $STARTUPDIR/generate_container_user' >> $HOME/.bashrc
RUN mkdir -p $STARTUPDIR
COPY builder/startup/ $STARTUPDIR
### START CUSTOM STUFF ####
ARG KASMVNC_PACKAGE_DIR
COPY $KASMVNC_PACKAGE_DIR/kasmvncserver_*.deb /tmp/
RUN rm -f /tmp/kasmvncserver_*+*.deb; dpkg -i /tmp/*.deb; apt-get -yf install
RUN mkdir ~/.vnc && echo '/usr/bin/xfce4-session &' >> ~/.vnc/xstartup && \
chmod +x ~/.vnc/xstartup
### END CUSTOM STUFF ###
RUN chown -R 1000:0 $HOME
USER 1000:ssl-cert
WORKDIR $HOME
ENTRYPOINT [ "/dockerstartup/vnc_startup.sh" ]

View file

@ -0,0 +1,51 @@
FROM ubuntu:resolute
ENV DISPLAY=:1 \
VNC_PORT=8443 \
VNC_RESOLUTION=1280x720 \
MAX_FRAME_RATE=24 \
VNCOPTIONS="-PreferBandwidth -DynamicQualityMin=4 -DynamicQualityMax=7" \
HOME=/home/user \
TERM=xterm \
STARTUPDIR=/dockerstartup \
INST_SCRIPTS=/dockerstartup/install \
KASM_RX_HOME=/dockerstartup/kasmrx \
DEBIAN_FRONTEND=noninteractive \
VNC_COL_DEPTH=24 \
VNC_RESOLUTION=1280x1024 \
VNC_PW=vncpassword \
VNC_USER=user \
VNC_VIEW_ONLY_PW=vncviewonlypassword \
LD_LIBRARY_PATH=/usr/local/lib/ \
OMP_WAIT_POLICY=PASSIVE \
SHELL=/bin/bash \
SINGLE_APPLICATION=0 \
KASMVNC_BUILD_OS=ubuntu \
KASMVNC_BUILD_OS_CODENAME=resolute
EXPOSE $VNC_PORT
WORKDIR $HOME
### REQUIRED STUFF ###
RUN apt-get update && apt-get install -y supervisor xfce4 xfce4-terminal xterm libnss-wrapper gettext wget
RUN apt-get purge -y pm-utils xscreensaver*
RUN echo 'source $STARTUPDIR/generate_container_user' >> $HOME/.bashrc
RUN mkdir -p $STARTUPDIR
COPY startup/ $STARTUPDIR
### START CUSTOM STUFF ####
COPY build/kasmvnc.${KASMVNC_BUILD_OS}_${KASMVNC_BUILD_OS_CODENAME}.tar.gz /tmp/
RUN tar -xzvf /tmp/kasmvnc.${KASMVNC_BUILD_OS}_${KASMVNC_BUILD_OS_CODENAME}.tar.gz --strip 1 -C /
### END CUSTOM STUFF ###
RUN chown -R 1000:0 $HOME
USER 1000
WORKDIR $HOME
ENTRYPOINT [ "/dockerstartup/vnc_startup.sh" ]