Skip to content

Rebase to noble, update for 1.17.0 #89

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file modified .github/workflows/call_issue_pr_tracker.yml
100755 → 100644
Empty file.
Empty file modified .github/workflows/call_issues_cron.yml
100755 → 100644
Empty file.
30 changes: 10 additions & 20 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1

FROM ghcr.io/linuxserver/baseimage-ubuntu:jammy
FROM ghcr.io/linuxserver/baseimage-ubuntu:noble

# set version label
ARG BUILD_DATE
Expand All @@ -21,43 +21,33 @@ ENV NVIDIA_DRIVER_CAPABILITIES="compute,graphics,video,utility" \
RUN \
echo "**** install packages ****" && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu jammy stable" > \
echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu noble stable" > \
/etc/apt/sources.list.d/docker.list && \
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && \
curl -s -L https://nvidia.github.io/libnvidia-container/ubuntu22.04/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
tee /etc/apt/sources.list.d/nvidia-container-toolkit.list && \
curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
tee /etc/apt/sources.list.d/nvidia-container-toolkit.list && \
curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get install -y --no-install-recommends \
btrfs-progs \
build-essential \
containerd.io \
docker-ce \
docker-ce-cli \
docker-compose-plugin \
e2fsprogs \
fuse-overlayfs \
g++ \
gcc \
iproute2 \
iptables \
jq \
lsof \
make \
nodejs \
nvidia-container-toolkit \
nvidia-docker2 \
openssl \
pigz \
python3 \
sudo \
uidmap \
xfsprogs && \
echo "**** compose install ****" && \
mkdir -p /usr/local/lib/docker/cli-plugins && \
curl -L \
https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m) -o \
/usr/local/lib/docker/cli-plugins/docker-compose && \
chmod +x /usr/local/lib/docker/cli-plugins/docker-compose && \
echo "**** dind setup ****" && \
useradd -U dockremap && \
usermod -G dockremap dockremap && \
Expand Down Expand Up @@ -93,7 +83,7 @@ RUN \
ALVERSION=$(cat /kasm_release/conf/database/seed_data/default_properties.yaml |awk '/alembic_version/ {print $2}') && \
curl -o \
/tmp/images.tar.gz -L \
"https://kasm-ci.s3.amazonaws.com/1.16.1-images-combined.tar.gz" && \
"https://kasm-ci.s3.amazonaws.com/1.17.0-images-combined.tar.gz" && \
tar xf \
/tmp/images.tar.gz -C \
/ && \
Expand Down
30 changes: 10 additions & 20 deletions Dockerfile.aarch64
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1

FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-jammy
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-noble

# set version label
ARG BUILD_DATE
Expand All @@ -21,43 +21,33 @@ ENV NVIDIA_DRIVER_CAPABILITIES="compute,graphics,video,utility" \
RUN \
echo "**** install packages ****" && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
echo "deb [arch=arm64] https://download.docker.com/linux/ubuntu jammy stable" > \
echo "deb [arch=arm64] https://download.docker.com/linux/ubuntu noble stable" > \
/etc/apt/sources.list.d/docker.list && \
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && \
curl -s -L https://nvidia.github.io/libnvidia-container/ubuntu22.04/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
tee /etc/apt/sources.list.d/nvidia-container-toolkit.list && \
curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
tee /etc/apt/sources.list.d/nvidia-container-toolkit.list && \
curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get install -y --no-install-recommends \
btrfs-progs \
build-essential \
containerd.io \
docker-ce \
docker-ce-cli \
docker-compose-plugin \
e2fsprogs \
fuse-overlayfs \
g++ \
gcc \
iproute2 \
iptables \
jq \
lsof \
make \
nodejs \
nvidia-container-toolkit \
nvidia-docker2 \
openssl \
pigz \
python3 \
sudo \
uidmap \
xfsprogs && \
echo "**** compose install ****" && \
mkdir -p /usr/local/lib/docker/cli-plugins && \
curl -L \
https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m) -o \
/usr/local/lib/docker/cli-plugins/docker-compose && \
chmod +x /usr/local/lib/docker/cli-plugins/docker-compose && \
echo "**** dind setup ****" && \
useradd -U dockremap && \
usermod -G dockremap dockremap && \
Expand Down Expand Up @@ -93,7 +83,7 @@ RUN \
ALVERSION=$(cat /kasm_release/conf/database/seed_data/default_properties.yaml |awk '/alembic_version/ {print $2}') && \
curl -o \
/tmp/images.tar.gz -L \
"https://kasm-ci.s3.amazonaws.com/1.16.1-images-combined.tar.gz" && \
"https://kasm-ci.s3.amazonaws.com/1.17.0-images-combined.tar.gz" && \
tar xf \
/tmp/images.tar.gz -C \
/ && \
Expand Down
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,8 @@ services:
- DOCKER_HUB_PASSWORD=PASS #optional
- DOCKER_MTU=1500 #optional
volumes:
- /path/to/data:/opt
- /path/to/profiles:/profiles #optional
- /path/to/kasm/data:/opt
- /path/to/kasm/profiles:/profiles #optional
- /dev/input:/dev/input #optional
- /run/udev/data:/run/udev/data #optional
ports:
Expand All @@ -155,8 +155,8 @@ docker run -d \
-e DOCKER_MTU=1500 `#optional` \
-p 3000:3000 \
-p 443:443 \
-v /path/to/data:/opt \
-v /path/to/profiles:/profiles `#optional` \
-v /path/to/kasm/data:/opt \
-v /path/to/kasm/profiles:/profiles `#optional` \
-v /dev/input:/dev/input `#optional` \
-v /run/udev/data:/run/udev/data `#optional` \
--restart unless-stopped \
Expand Down Expand Up @@ -325,6 +325,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64

## Versions

* **03.06.25:** - Rebase to Ubuntu Noble. Update for 1.17.0 release.
* **09.11.24:** - Update base image for 1.16.1 release.
* **24.09.24:** - Add base users in docker build logic to survive container upgrades.
* **17.09.24:** - Update base image for 1.16.0 release and fix Nvidia support.
Expand Down
1 change: 0 additions & 1 deletion jenkins-vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ external_type: github_stable
release_type: stable
release_tag: latest
ls_branch: master
build_armhf: false
repo_vars:
- EXT_GIT_BRANCH = 'develop'
- EXT_USER = 'kasmtech'
Expand Down
20 changes: 3 additions & 17 deletions readme-vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ project_blurb: |
The rendering of the graphical-based containers is powered by the open-source project [KasmVNC](https://www.kasmweb.com/kasmvnc.html?utm_campaign=LinuxServer&utm_source=kasmvnc).
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_categories: "Remote Desktop,Business"
project_blurb_optional_extras_enabled: false
project_blurb_optional_extras: []
# supported architectures
available_architectures:
- {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
Expand All @@ -26,12 +24,9 @@ param_usage_include_net: false
param_usage_include_env: true
param_env_vars:
- {env_var: "KASM_PORT", env_value: "443", desc: "Specify the port you bind to the outside for Kasm Workspaces."}
- {env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London."}
param_usage_include_vols: true
param_volumes:
- {vol_path: "/opt", vol_host_path: "/path/to/data", desc: "Docker and installation storage."}
param_device_map: false
param_devices: []
- {vol_path: "/opt", vol_host_path: "/path/to/{{ project_name }}/data", desc: "Docker and installation storage."}
param_usage_include_ports: true
param_ports:
- {external_port: "3000", internal_port: "3000", port_desc: "Kasm Installation wizard. (https)"}
Expand All @@ -44,22 +39,12 @@ opt_param_env_vars:
- {env_var: "DOCKER_MTU", env_value: "1500", desc: "Optionally specify the mtu options passed to dockerd."}
opt_param_usage_include_vols: true
opt_param_volumes:
- {vol_path: "/profiles", vol_host_path: "/path/to/profiles", desc: "Optionally specify a path for persistent profile storage."}
- {vol_path: "/profiles", vol_host_path: "/path/to/{{ project_name }}/profiles", desc: "Optionally specify a path for persistent profile storage."}
- {vol_path: "/dev/input", vol_host_path: "/dev/input", desc: "Optional for gamepad support."}
- {vol_path: "/run/udev/data", vol_host_path: "/run/udev/data", desc: "Optional for gamepad support."}
opt_security_opt_param: true
opt_security_opt_param_vars:
- {run_var: "apparmor=rootlesskit", compose_var: "apparmor:rootlesskit", desc: "Some hosts require this on top of privileged for namespacing to work properly inside the DinD layer."}
opt_param_usage_include_ports: false
opt_param_ports: []
opt_param_device_map: false
opt_param_devices: []
cap_add_param: false
cap_add_param_vars: []
opt_cap_add_param: false
opt_cap_add_param_vars: []
optional_block_1: false
optional_block_1_items: ""
unraid_template: false
privileged: true
# application setup block
Expand Down Expand Up @@ -148,6 +133,7 @@ init_diagram: |
"kasm:latest" <- Base Images
# changelog
changelogs:
- {date: "03.06.25:", desc: "Rebase to Ubuntu Noble. Update for 1.17.0 release."}
- {date: "09.11.24:", desc: "Update base image for 1.16.1 release."}
- {date: "24.09.24:", desc: "Add base users in docker build logic to survive container upgrades."}
- {date: "17.09.24:", desc: "Update base image for 1.16.0 release and fix Nvidia support."}
Expand Down
16 changes: 8 additions & 8 deletions root/etc/s6-overlay/s6-rc.d/init-config-kasm/run
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
#!/usr/bin/with-contenv bash

# Create directories
if [ ! -d "/opt/docker" ]; then
if [[ ! -d "/opt/docker" ]]; then
mkdir -p /opt/docker
fi

# Login to Dockerhub
if [ -n "${DOCKER_HUB_USERNAME}" ]; then
if [[ -n "${DOCKER_HUB_USERNAME}" ]]; then
docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD
fi

# Generate self cert for wizard
if [ ! -f "/opt/kasm/certs/kasm_wizard.crt" ]; then
if [[ ! -f "/opt/kasm/certs/kasm_wizard.crt" ]]; then
mkdir -p /opt/kasm/certs
openssl req -x509 -nodes -days 1825 -newkey rsa:2048 \
-keyout /opt/kasm/certs/kasm_wizard.key \
Expand All @@ -20,9 +20,9 @@ if [ ! -f "/opt/kasm/certs/kasm_wizard.crt" ]; then
fi

# Create plugin directory
if [ ! -L "/var/lib/docker-plugins" ]; then
mkdir -p /opt/docker-plugins
ln -s /opt/docker-plugins /var/lib/docker-plugins
mkdir -p /var/lib/docker-plugins/rclone/config
mkdir -p /var/lib/docker-plugins/rclone/cache
if [[ ! -L "/var/lib/docker-plugins" ]]; then
mkdir -p /opt/docker-plugins
ln -s /opt/docker-plugins /var/lib/docker-plugins
mkdir -p /var/lib/docker-plugins/rclone/config
mkdir -p /var/lib/docker-plugins/rclone/cache
fi