@@ -17,18 +17,24 @@ ENV DEBIAN_FRONTEND=noninteractive
1717#Add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker
1818ENV NVIDIA_DRIVER_CAPABILITIES="compute,graphics,video,utility"
1919
20- # Container setup
2120RUN \
2221 echo "**** install packages ****" && \
23- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
24- echo "deb [arch=arm64] https://download.docker.com/linux/ubuntu noble stable" > \
25- /etc/apt/sources.list.d/docker.list && \
26- curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
22+ install -m 0755 -d /etc/apt/keyrings && \
23+ # Docker
24+ curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \
25+ printf "Types: deb\nURIs: https://download.docker.com/linux/ubuntu\nSuites: $(. /etc/os-release && echo ${UBUNTU_CODENAME:-$VERSION_CODENAME})\nComponents: stable\nArchitectures: $(dpkg --print-architecture)\nSigned-By: /etc/apt/keyrings/docker.asc" > /etc/apt/sources.list.d/docker.sources && \
26+ printf "Package: docker-ce docker-ce-cli docker-ce-rootless-extras\nPin: version 5:29.*\nPin-Priority: 1001" > /etc/apt/preferences.d/docker && \
27+ # Nvidia CTK
28+ curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /etc/apt/keyrings/nvidia-container-toolkit-keyring.gpg \
2729 && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
28- sed 's#deb https://#deb [signed-by=/usr/share /keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
30+ sed 's#deb https://#deb [signed-by=/etc/apt /keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
2931 tee /etc/apt/sources.list.d/nvidia-container-toolkit.list && \
30- curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
31- printf "Package: docker-ce docker-ce-cli docker-ce-rootless-extras\nPin: version 5:29.* \nPin-Priority: 1001" > /etc/apt/preferences.d/docker && \
32+ # NodeJS
33+ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
34+ printf "Types: deb\nURIs: https://deb.nodesource.com/node_20.x\nSuites: nodistro\nComponents: main\nArchitectures: $(dpkg --print-architecture)\nSigned-By: /etc/apt/keyrings/nodesource.gpg" > /etc/apt/sources.list.d/nodesource.sources && \
35+ printf "Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 600" > /etc/apt/preferences.d/nodejs && \
36+ chmod a+r /etc/apt/keyrings/{*.gpg,*.asc}
37+ apt-get update && \
3238 apt-get install -y --no-install-recommends \
3339 btrfs-progs \
3440 build-essential \
@@ -68,41 +74,23 @@ RUN \
6874 echo "**** add wizard ****" && \
6975 curl -o \
7076 /tmp/wizard.tar.gz -L \
71- # "https://github.com/kasmtech/kasm-install-wizard/archive/refs/tags/${KASM_VERSION}.tar.gz" && \
72- "https://github.com/kasmtech/kasm-install-wizard/archive/refs/tags/1.18.0.tar.gz" && \
77+ "https://github.com/kasmtech/kasm-install-wizard/archive/refs/tags/${KASM_VERSION}.tar.gz" && \
7378 tar xf \
7479 /tmp/wizard.tar.gz -C \
7580 /wizard --strip-components=1 && \
76- # Enable rolling service images
77- sed -i "/installFlags = \[.*/a \ installFlags.push('-O');" /wizard/index.js && \
7881 cd /wizard && \
7982 npm install && \
80- echo "**** add image definitions ****" && \
81- curl -o \
82- /tmp/images.tar.gz -L \
83- #"https://kasm-ci.s3.amazonaws.com/${KASM_VERSION}-images-combined.tar.gz" && \
84- "https://kasm-ci.s3.amazonaws.com/1.18.0-images-combined.tar.gz" && \
85- tar xf \
86- /tmp/images.tar.gz -C \
87- / && \
8883 echo "**** add installer ****" && \
8984 curl -o \
9085 /tmp/kasm.tar.gz -L \
9186 "https://kasm-static-content.s3.amazonaws.com/kasm_release_${KASM_VERSION}.tar.gz" && \
9287 tar xf \
9388 /tmp/kasm.tar.gz -C \
9489 / && \
95- ALVERSION=$(cat /kasm_release/conf/database/seed_data/default_properties.yaml |awk '/alembic_version/ {print $2}') && \
96- sed -i \
97- '/alembic_version/s/.*/alembic_version: '${ALVERSION}'/' \
98- /kasm_release/conf/database/seed_data/default_images_a* && \
99- # Don't check for open ports
90+ # Don't check for open ports during upgrades
10091 sed -i 's/-N -e -H/-N -B -e -H/g' /kasm_release/upgrade.sh && \
10192 echo "exit 0" > /kasm_release/install_dependencies.sh && \
102- # Add our customisations
103- /kasm_release/bin/utils/yq_$(uname -m) -i \
104- '.services.proxy.volumes += "/kasm_release/www/img/thumbnails:/srv/www/img/thumbnails"' \
105- /kasm_release/docker/docker-compose-all.yaml && \
93+ # Fix dependencies so containers start in the right order
10694 /kasm_release/bin/utils/yq_$(uname -m) -i \
10795 '.services.proxy.depends_on = {"kasm_manager":{"condition": "service_healthy"},"kasm_api":{"condition": "service_healthy"},"kasm_agent":{"condition": "service_started"},"kasm_guac":{"condition": "service_started"}}' \
10896 /kasm_release/docker/docker-compose-all.yaml && \
@@ -116,15 +104,11 @@ RUN \
116104 '.services.kasm_api.healthcheck += {"start_period": "60s","start_interval": "30s"}' \
117105 /kasm_release/docker/docker-compose-all.yaml && \
118106 /kasm_release/bin/utils/yq_$(uname -m) -i \
119- '.services.kasm_rdp_https_gateway.depends_on = {"proxy":{"condition": "service_started"},"rdp_gateway":{"condition": "service_healthy"} }' \
107+ '.services.kasm_rdp_https_gateway.depends_on = {"proxy":{"condition": "service_started"}}' \
120108 /kasm_release/docker/docker-compose-all.yaml && \
121- echo "**** copy assets ****" && \
122- cp \
123- /kasm_release/www/img/thumbnails/*.png /kasm_release/www/img/thumbnails/*.svg \
124- /wizard/public/img/thumbnails/ && \
125- cp \
126- /kasm_release/conf/database/seed_data/default_images_a* \
127- /wizard/ && \
109+ # Disable containerd snapshotter
110+ jq '. += {"features": {"containerd-snapshotter": false}}' /etc/docker/daemon.json > /tmp/daemon.json && mv /tmp/daemon.json /etc/docker/daemon.json && \
111+ # Add Kasm and db users
128112 useradd -u 70 kasm_db && \
129113 useradd kasm && \
130114 printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
0 commit comments