mirror of
https://github.com/linuxserver/docker-kasm.git
synced 2026-07-17 16:46:34 +00:00
Final updates for 1.18.1 wizard changes
This commit is contained in:
parent
66cc19d4c1
commit
1e83983990
7 changed files with 61 additions and 65 deletions
4
.github/workflows/external_trigger.yml
vendored
4
.github/workflows/external_trigger.yml
vendored
|
|
@ -29,8 +29,8 @@ jobs:
|
|||
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> External trigger running off of master branch. To disable this trigger, add \`kasm_master\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
|
||||
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
|
||||
EXT_RELEASE=$(echo 1.18.1)
|
||||
echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY
|
||||
EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/kasmtech/kasm-install-wizard/releases/latest" | jq -r '. | .tag_name')
|
||||
echo "Type is \`github_stable\`" >> $GITHUB_STEP_SUMMARY
|
||||
if grep -q "^kasm_master_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
|
||||
|
|
|
|||
28
Dockerfile
28
Dockerfile
|
|
@ -17,20 +17,23 @@ ENV DEBIAN_FRONTEND=noninteractive
|
|||
#Add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker
|
||||
ENV NVIDIA_DRIVER_CAPABILITIES="compute,graphics,video,utility"
|
||||
|
||||
# Container setup
|
||||
RUN \
|
||||
echo "**** install packages ****" && \
|
||||
install -m 0755 -d /etc/apt/keyrings && \
|
||||
# Docker
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \
|
||||
chmod a+r /etc/apt/keyrings/docker.asc && \
|
||||
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 && \
|
||||
cat /etc/apt/sources.list.d/docker.sources && \
|
||||
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
|
||||
printf "Package: docker-ce docker-ce-cli docker-ce-rootless-extras\nPin: version 5:29.*\nPin-Priority: 1001" > /etc/apt/preferences.d/docker && \
|
||||
# Nvidia CTK
|
||||
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /etc/apt/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' | \
|
||||
sed 's#deb https://#deb [signed-by=/etc/apt/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 - && \
|
||||
printf "Package: docker-ce docker-ce-cli docker-ce-rootless-extras\nPin: version 5:29.* \nPin-Priority: 1001" > /etc/apt/preferences.d/docker && \
|
||||
# NodeJS
|
||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
|
||||
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 && \
|
||||
printf "Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 600" > /etc/apt/preferences.d/nodejs && \
|
||||
chmod a+r /etc/apt/keyrings/{*.gpg,*.asc}
|
||||
apt-get update && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
btrfs-progs \
|
||||
|
|
@ -57,7 +60,7 @@ RUN \
|
|||
usermod -G dockremap dockremap && \
|
||||
echo 'dockremap:165536:65536' >> /etc/subuid && \
|
||||
echo 'dockremap:165536:65536' >> /etc/subgid && \
|
||||
curl -w "%{response_code}" -o \
|
||||
curl -o \
|
||||
/usr/local/bin/dind -L \
|
||||
https://raw.githubusercontent.com/moby/moby/master/hack/dind && \
|
||||
chmod +x /usr/local/bin/dind && \
|
||||
|
|
@ -71,8 +74,7 @@ RUN \
|
|||
echo "**** add wizard ****" && \
|
||||
curl -o \
|
||||
/tmp/wizard.tar.gz -L \
|
||||
# "https://github.com/kasmtech/kasm-install-wizard/archive/refs/tags/${KASM_VERSION}.tar.gz" && \
|
||||
"https://github.com/KodeStar/kasm-install-wizard/archive/refs/heads/feature/KASM-8264-registry-based-wizard-installer.tar.gz" && \
|
||||
"https://github.com/kasmtech/kasm-install-wizard/archive/refs/tags/${KASM_VERSION}.tar.gz" && \
|
||||
tar xf \
|
||||
/tmp/wizard.tar.gz -C \
|
||||
/wizard --strip-components=1 && \
|
||||
|
|
@ -85,9 +87,10 @@ RUN \
|
|||
tar xf \
|
||||
/tmp/kasm.tar.gz -C \
|
||||
/ && \
|
||||
# Don't check for open ports
|
||||
# Don't check for open ports during upgrades
|
||||
sed -i 's/-N -e -H/-N -B -e -H/g' /kasm_release/upgrade.sh && \
|
||||
echo "exit 0" > /kasm_release/install_dependencies.sh && \
|
||||
# Fix dependencies so containers start in the right order
|
||||
/kasm_release/bin/utils/yq_$(uname -m) -i \
|
||||
'.services.proxy.depends_on = {"kasm_manager":{"condition": "service_healthy"},"kasm_api":{"condition": "service_healthy"},"kasm_agent":{"condition": "service_started"},"kasm_guac":{"condition": "service_started"}}' \
|
||||
/kasm_release/docker/docker-compose-all.yaml && \
|
||||
|
|
@ -103,6 +106,9 @@ RUN \
|
|||
/kasm_release/bin/utils/yq_$(uname -m) -i \
|
||||
'.services.kasm_rdp_https_gateway.depends_on = {"proxy":{"condition": "service_started"}}' \
|
||||
/kasm_release/docker/docker-compose-all.yaml && \
|
||||
# Disable containerd snapshotter
|
||||
jq '. += {"features": {"containerd-snapshotter": false}}' /etc/docker/daemon.json > /tmp/daemon.json && mv /tmp/daemon.json /etc/docker/daemon.json && \
|
||||
# Add Kasm and db users
|
||||
useradd -u 70 kasm_db && \
|
||||
useradd kasm && \
|
||||
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
|
||||
|
|
|
|||
|
|
@ -17,18 +17,24 @@ ENV DEBIAN_FRONTEND=noninteractive
|
|||
#Add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker
|
||||
ENV NVIDIA_DRIVER_CAPABILITIES="compute,graphics,video,utility"
|
||||
|
||||
# Container setup
|
||||
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 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 \
|
||||
install -m 0755 -d /etc/apt/keyrings && \
|
||||
# Docker
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \
|
||||
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 && \
|
||||
printf "Package: docker-ce docker-ce-cli docker-ce-rootless-extras\nPin: version 5:29.*\nPin-Priority: 1001" > /etc/apt/preferences.d/docker && \
|
||||
# Nvidia CTK
|
||||
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /etc/apt/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' | \
|
||||
sed 's#deb https://#deb [signed-by=/etc/apt/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 - && \
|
||||
printf "Package: docker-ce docker-ce-cli docker-ce-rootless-extras\nPin: version 5:29.* \nPin-Priority: 1001" > /etc/apt/preferences.d/docker && \
|
||||
# NodeJS
|
||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
|
||||
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 && \
|
||||
printf "Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 600" > /etc/apt/preferences.d/nodejs && \
|
||||
chmod a+r /etc/apt/keyrings/{*.gpg,*.asc}
|
||||
apt-get update && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
btrfs-progs \
|
||||
build-essential \
|
||||
|
|
@ -68,23 +74,12 @@ RUN \
|
|||
echo "**** add wizard ****" && \
|
||||
curl -o \
|
||||
/tmp/wizard.tar.gz -L \
|
||||
# "https://github.com/kasmtech/kasm-install-wizard/archive/refs/tags/${KASM_VERSION}.tar.gz" && \
|
||||
"https://github.com/kasmtech/kasm-install-wizard/archive/refs/tags/1.18.0.tar.gz" && \
|
||||
"https://github.com/kasmtech/kasm-install-wizard/archive/refs/tags/${KASM_VERSION}.tar.gz" && \
|
||||
tar xf \
|
||||
/tmp/wizard.tar.gz -C \
|
||||
/wizard --strip-components=1 && \
|
||||
# Enable rolling service images
|
||||
sed -i "/installFlags = \[.*/a \ installFlags.push('-O');" /wizard/index.js && \
|
||||
cd /wizard && \
|
||||
npm install && \
|
||||
echo "**** add image definitions ****" && \
|
||||
curl -o \
|
||||
/tmp/images.tar.gz -L \
|
||||
#"https://kasm-ci.s3.amazonaws.com/${KASM_VERSION}-images-combined.tar.gz" && \
|
||||
"https://kasm-ci.s3.amazonaws.com/1.18.0-images-combined.tar.gz" && \
|
||||
tar xf \
|
||||
/tmp/images.tar.gz -C \
|
||||
/ && \
|
||||
echo "**** add installer ****" && \
|
||||
curl -o \
|
||||
/tmp/kasm.tar.gz -L \
|
||||
|
|
@ -92,17 +87,10 @@ RUN \
|
|||
tar xf \
|
||||
/tmp/kasm.tar.gz -C \
|
||||
/ && \
|
||||
ALVERSION=$(cat /kasm_release/conf/database/seed_data/default_properties.yaml |awk '/alembic_version/ {print $2}') && \
|
||||
sed -i \
|
||||
'/alembic_version/s/.*/alembic_version: '${ALVERSION}'/' \
|
||||
/kasm_release/conf/database/seed_data/default_images_a* && \
|
||||
# Don't check for open ports
|
||||
# Don't check for open ports during upgrades
|
||||
sed -i 's/-N -e -H/-N -B -e -H/g' /kasm_release/upgrade.sh && \
|
||||
echo "exit 0" > /kasm_release/install_dependencies.sh && \
|
||||
# Add our customisations
|
||||
/kasm_release/bin/utils/yq_$(uname -m) -i \
|
||||
'.services.proxy.volumes += "/kasm_release/www/img/thumbnails:/srv/www/img/thumbnails"' \
|
||||
/kasm_release/docker/docker-compose-all.yaml && \
|
||||
# Fix dependencies so containers start in the right order
|
||||
/kasm_release/bin/utils/yq_$(uname -m) -i \
|
||||
'.services.proxy.depends_on = {"kasm_manager":{"condition": "service_healthy"},"kasm_api":{"condition": "service_healthy"},"kasm_agent":{"condition": "service_started"},"kasm_guac":{"condition": "service_started"}}' \
|
||||
/kasm_release/docker/docker-compose-all.yaml && \
|
||||
|
|
@ -116,15 +104,11 @@ RUN \
|
|||
'.services.kasm_api.healthcheck += {"start_period": "60s","start_interval": "30s"}' \
|
||||
/kasm_release/docker/docker-compose-all.yaml && \
|
||||
/kasm_release/bin/utils/yq_$(uname -m) -i \
|
||||
'.services.kasm_rdp_https_gateway.depends_on = {"proxy":{"condition": "service_started"},"rdp_gateway":{"condition": "service_healthy"}}' \
|
||||
'.services.kasm_rdp_https_gateway.depends_on = {"proxy":{"condition": "service_started"}}' \
|
||||
/kasm_release/docker/docker-compose-all.yaml && \
|
||||
echo "**** copy assets ****" && \
|
||||
cp \
|
||||
/kasm_release/www/img/thumbnails/*.png /kasm_release/www/img/thumbnails/*.svg \
|
||||
/wizard/public/img/thumbnails/ && \
|
||||
cp \
|
||||
/kasm_release/conf/database/seed_data/default_images_a* \
|
||||
/wizard/ && \
|
||||
# Disable containerd snapshotter
|
||||
jq '. += {"features": {"containerd-snapshotter": false}}' /etc/docker/daemon.json > /tmp/daemon.json && mv /tmp/daemon.json /etc/docker/daemon.json && \
|
||||
# Add Kasm and db users
|
||||
useradd -u 70 kasm_db && \
|
||||
useradd kasm && \
|
||||
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
|
||||
|
|
|
|||
29
Jenkinsfile
vendored
29
Jenkinsfile
vendored
|
|
@ -145,16 +145,23 @@ pipeline {
|
|||
/* ########################
|
||||
External Release Tagging
|
||||
######################## */
|
||||
// If this is a custom command to determine version use that command
|
||||
stage("Set tag custom bash"){
|
||||
steps{
|
||||
script{
|
||||
env.EXT_RELEASE = sh(
|
||||
script: ''' echo 1.18.1 ''',
|
||||
returnStdout: true).trim()
|
||||
env.RELEASE_LINK = 'custom_command'
|
||||
}
|
||||
}
|
||||
// If this is a stable github release use the latest endpoint from github to determine the ext tag
|
||||
stage("Set ENV github_stable"){
|
||||
steps{
|
||||
script{
|
||||
env.EXT_RELEASE = sh(
|
||||
script: '''curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq -r '. | .tag_name' ''',
|
||||
returnStdout: true).trim()
|
||||
}
|
||||
}
|
||||
}
|
||||
// If this is a stable or devel github release generate the link for the build message
|
||||
stage("Set ENV github_link"){
|
||||
steps{
|
||||
script{
|
||||
env.RELEASE_LINK = 'https://github.com/' + env.EXT_USER + '/' + env.EXT_REPO + '/releases/tag/' + env.EXT_RELEASE
|
||||
}
|
||||
}
|
||||
}
|
||||
// Sanitize the release tag and strip illegal docker or github characters
|
||||
stage("Sanitize tag"){
|
||||
|
|
@ -990,7 +997,7 @@ pipeline {
|
|||
"type": "commit",\
|
||||
"tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}'
|
||||
echo "Pushing New release for Tag"
|
||||
echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
|
||||
curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq -r '. |.body' > releasebody.json
|
||||
jq -n \
|
||||
--arg tag_name "$META_TAG" \
|
||||
--arg target_commitish "master" \
|
||||
|
|
|
|||
|
|
@ -317,7 +317,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
|||
|
||||
## Versions
|
||||
|
||||
* **22.03.26:** - Update for 1.18.1 release. Use rolling service images.
|
||||
* **16.04.26:** - Update for 1.18.1 release. Use rolling service images.
|
||||
* **13.11.25:** - Pin docker to v28 to avoid API deprecation issues.
|
||||
* **22.10.25:** - Update for 1.18.0 release.
|
||||
* **08.06.25:** - Deprecate develop branch.
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@
|
|||
|
||||
# jenkins variables
|
||||
project_name: docker-kasm
|
||||
external_type: na
|
||||
custom_version_command: "echo 1.18.1"
|
||||
external_type: github_stable
|
||||
release_type: stable
|
||||
release_tag: latest
|
||||
ls_branch: master
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ init_diagram: |
|
|||
"kasm:latest" <- Base Images
|
||||
# changelog
|
||||
changelogs:
|
||||
- {date: "22.03.26:", desc: "Update for 1.18.1 release. Use rolling service images."}
|
||||
- {date: "16.04.26:", desc: "Update for 1.18.1 release. Use rolling service images. Bump docker to v29."}
|
||||
- {date: "13.11.25:", desc: "Pin docker to v28 to avoid API deprecation issues."}
|
||||
- {date: "22.10.25:", desc: "Update for 1.18.0 release."}
|
||||
- {date: "08.06.25:", desc: "Deprecate develop branch."}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue