diff --git a/.github/workflows/call_issue_pr_tracker.yml b/.github/workflows/call_issue_pr_tracker.yml old mode 100755 new mode 100644 diff --git a/.github/workflows/call_issues_cron.yml b/.github/workflows/call_issues_cron.yml old mode 100755 new mode 100644 diff --git a/Dockerfile b/Dockerfile index 4f20103..b649e14 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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 @@ -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 && \ @@ -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 \ / && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index ee05461..d2782b6 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -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 @@ -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 && \ @@ -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 \ / && \ diff --git a/README.md b/README.md index 498e927..d9a835a 100644 --- a/README.md +++ b/README.md @@ -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: @@ -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 \ @@ -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. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index e705fba..429bb53 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -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' diff --git a/readme-vars.yml b/readme-vars.yml index 49e8eda..bcc9a61 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -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"} @@ -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)"} @@ -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 @@ -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."} diff --git a/root/etc/s6-overlay/s6-rc.d/init-config-kasm/run b/root/etc/s6-overlay/s6-rc.d/init-config-kasm/run index f696272..57ac17a 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-config-kasm/run +++ b/root/etc/s6-overlay/s6-rc.d/init-config-kasm/run @@ -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 \ @@ -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