diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index fb2dc64..45fb358 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -24,7 +24,7 @@ ## Readme If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit. -Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-chromium/edit/master/readme-vars.yml). +Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-chromium/edit/kasm/readme-vars.yml). These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play. Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-chromium) @@ -115,7 +115,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Update the changelog -If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-chromium/tree/master/root), add an entry to the changelog +If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-chromium/tree/kasm/root), add an entry to the changelog ```yml changelogs: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 8c4efaf..e4dbb9e 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -21,7 +21,7 @@ ------------------------------ - - [ ] I have read the [contributing](https://github.com/linuxserver/docker-chromium/blob/master/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications + - [ ] I have read the [contributing](https://github.com/linuxserver/docker-chromium/blob/kasm/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications ------------------------------ diff --git a/.github/workflows/call_issue_pr_tracker.yml b/.github/workflows/call_issue_pr_tracker.yml index 2c30784..d07cf12 100644 --- a/.github/workflows/call_issue_pr_tracker.yml +++ b/.github/workflows/call_issue_pr_tracker.yml @@ -8,6 +8,9 @@ on: pull_request_review: types: [submitted,edited,dismissed] +permissions: + contents: read + jobs: manage-project: permissions: diff --git a/.github/workflows/call_issues_cron.yml b/.github/workflows/call_issues_cron.yml index 529fe79..db5d465 100644 --- a/.github/workflows/call_issues_cron.yml +++ b/.github/workflows/call_issues_cron.yml @@ -4,6 +4,9 @@ on: - cron: '58 21 * * *' workflow_dispatch: +permissions: + contents: read + jobs: stale: permissions: diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index ffe1860..21fb39f 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -3,14 +3,17 @@ name: External Trigger Main on: workflow_dispatch: +permissions: + contents: read + jobs: - external-trigger-master: + external-trigger-kasm: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4.1.1 - name: External Trigger - if: github.ref == 'refs/heads/master' + if: github.ref == 'refs/heads/kasm' env: SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }} run: | @@ -18,7 +21,7 @@ jobs: echo "Type is \`os\`" >> $GITHUB_STEP_SUMMARY echo "No external release, exiting" >> $GITHUB_STEP_SUMMARY exit 0 - if grep -q "^chromium_master_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then + if grep -q "^chromium_kasm_${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 exit 0 diff --git a/.github/workflows/external_trigger_scheduler.yml b/.github/workflows/external_trigger_scheduler.yml index d962541..f6d9157 100644 --- a/.github/workflows/external_trigger_scheduler.yml +++ b/.github/workflows/external_trigger_scheduler.yml @@ -5,6 +5,9 @@ on: - cron: '0 * * * *' workflow_dispatch: +permissions: + contents: read + jobs: external-trigger-scheduler: runs-on: ubuntu-latest diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml index 4d7943b..bb78553 100644 --- a/.github/workflows/greetings.yml +++ b/.github/workflows/greetings.yml @@ -2,12 +2,18 @@ name: Greetings on: [pull_request_target, issues] +permissions: + contents: read + jobs: greeting: + permissions: + issues: write + pull-requests: write runs-on: ubuntu-latest steps: - uses: actions/first-interaction@v1 with: issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.' - pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-chromium/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!' + pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-chromium/blob/kasm/.github/PULL_REQUEST_TEMPLATE.md)!' repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/package_trigger_scheduler.yml b/.github/workflows/package_trigger_scheduler.yml index 2e19dba..b0ad0bb 100644 --- a/.github/workflows/package_trigger_scheduler.yml +++ b/.github/workflows/package_trigger_scheduler.yml @@ -5,6 +5,9 @@ on: - cron: '9 9 * * 3' workflow_dispatch: +permissions: + contents: read + jobs: package-trigger-scheduler: runs-on: ubuntu-latest diff --git a/Dockerfile b/Dockerfile index ef08894..5ac30cf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1 + FROM ghcr.io/linuxserver/baseimage-kasmvnc:debianbookworm # set version label @@ -19,6 +21,7 @@ RUN \ apt-get install -y --no-install-recommends \ chromium \ chromium-l10n && \ + printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ echo "**** cleanup ****" && \ apt-get autoclean && \ rm -rf \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index ff79b52..bda4147 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1 + FROM ghcr.io/linuxserver/baseimage-kasmvnc:arm64v8-debianbookworm # set version label @@ -19,6 +21,7 @@ RUN \ apt-get install -y --no-install-recommends \ chromium \ chromium-l10n && \ + printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ echo "**** cleanup ****" && \ apt-get autoclean && \ rm -rf \ diff --git a/Jenkinsfile b/Jenkinsfile index 65851f2..835aeab 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -76,7 +76,7 @@ pipeline { script{ env.EXIT_STATUS = '' env.LS_RELEASE = sh( - script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:latest 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', + script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:kasm 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', returnStdout: true).trim() env.LS_RELEASE_NOTES = sh( script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''', @@ -94,7 +94,11 @@ pipeline { env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/' env.PULL_REQUEST = env.CHANGE_ID env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml' + if ( env.SYFT_IMAGE_TAG == null ) { + env.SYFT_IMAGE_TAG = 'latest' + } } + echo "Using syft image tag ${SYFT_IMAGE_TAG}" sh '''#! /bin/bash echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" ''' script{ @@ -105,7 +109,7 @@ pipeline { script{ env.LS_TAG_NUMBER = sh( script: '''#! /bin/bash - tagsha=$(git rev-list -n 1 ${LS_RELEASE} 2>/dev/null) + tagsha=$(git rev-list -n 1 kasm-${LS_RELEASE} 2>/dev/null) if [ "${tagsha}" == "${COMMIT_SHA}" ]; then echo ${LS_RELEASE_NUMBER} elif [ -z "${GIT_COMMIT}" ]; then @@ -181,10 +185,10 @@ pipeline { } } } - // If this is a master build use live docker endpoints + // If this is a kasm build use live docker endpoints stage("Set ENV live build"){ when { - branch "master" + branch "kasm" environment name: 'CHANGE_ID', value: '' } steps { @@ -194,21 +198,22 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + env.CI_TAGS = 'amd64-kasm-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-kasm-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER } else { - env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + env.CI_TAGS = 'kasm-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER } env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER - env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER - env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN + env.META_TAG = 'kasm-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + env.EXT_RELEASE_TAG = 'kasm-version-' + env.EXT_RELEASE_CLEAN env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' + env.CITEST_IMAGETAG = 'latest' } } } // If this is a dev build use dev docker endpoints stage("Set ENV dev build"){ when { - not {branch "master"} + not {branch "kasm"} environment name: 'CHANGE_ID', value: '' } steps { @@ -218,15 +223,16 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + env.CI_TAGS = 'amd64-kasm-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-kasm-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA } else { - env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + env.CI_TAGS = 'kasm-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA } env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA - env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA - env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN + env.META_TAG = 'kasm-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + env.EXT_RELEASE_TAG = 'kasm-version-' + env.EXT_RELEASE_CLEAN env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/' env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' + env.CITEST_IMAGETAG = 'develop' } } } @@ -242,16 +248,17 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + env.CI_TAGS = 'amd64-kasm-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-kasm-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST } else { - env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + env.CI_TAGS = 'kasm-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST } env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST - env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST - env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN + env.META_TAG = 'kasm-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + env.EXT_RELEASE_TAG = 'kasm-version-' + env.EXT_RELEASE_CLEAN env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/' env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' + env.CITEST_IMAGETAG = 'develop' } } } @@ -274,7 +281,7 @@ pipeline { -v ${WORKSPACE}:/mnt \ -e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \ -e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \ - ghcr.io/linuxserver/baseimage-alpine:3.20 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\ + ghcr.io/linuxserver/baseimage-alpine:3.23 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\ apk add --no-cache python3 && \ python3 -m venv /lsiopy && \ pip install --no-cache-dir -U pip && \ @@ -286,7 +293,7 @@ pipeline { // Use helper containers to render templated files stage('Update-Templates') { when { - branch "master" + branch "kasm" environment name: 'CHANGE_ID', value: '' expression { env.CONTAINER_NAME != null @@ -298,24 +305,24 @@ pipeline { TEMPDIR=$(mktemp -d) docker pull ghcr.io/linuxserver/jenkins-builder:latest # Cloned repo paths for templating: - # ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch master of ${LS_USER}/${LS_REPO} for running the jenkins builder on - # ${TEMPDIR}/repo/${LS_REPO}: Cloned branch master of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github + # ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch kasm of ${LS_USER}/${LS_REPO} for running the jenkins builder on + # ${TEMPDIR}/repo/${LS_REPO}: Cloned branch kasm of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github # ${TEMPDIR}/docs/docker-documentation: Cloned docs repo for pushing docs updates to Github # ${TEMPDIR}/unraid/docker-templates: Cloned docker-templates repo to check for logos # ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github - git clone --branch master --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME} + git clone --branch kasm --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME} docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/jenkins-builder:latest echo "Starting Stage 1 - Jenkinsfile update" if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then mkdir -p ${TEMPDIR}/repo git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO} - git checkout -f master + git checkout -f kasm cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/ git add Jenkinsfile git commit -m 'Bot Updating Templated Files' - git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git kasm + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git kasm echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "Updating Jenkinsfile and exiting build, new one will trigger based on commit" rm -Rf ${TEMPDIR} @@ -334,13 +341,13 @@ pipeline { mkdir -p ${TEMPDIR}/repo git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO} - git checkout -f master + git checkout -f kasm for i in ${TEMPLATES_TO_DELETE}; do git rm "${i}" done git commit -m 'Bot Updating Templated Files' - git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git kasm + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git kasm echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "Deleting old/deprecated templates and exiting build, new one will trigger based on commit" rm -Rf ${TEMPDIR} @@ -355,20 +362,20 @@ pipeline { sed -i 's|^changelogs:|# init diagram\\ninit_diagram:\\n\\n# changelog\\nchangelogs:|' readme-vars.yml fi mkdir -p ${TEMPDIR}/d2 - docker run --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) -e RAW="true" ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:latest + docker run --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) -e RAW="true" ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:kasm ls -al ${TEMPDIR}/d2 - yq -ei ".init_diagram |= load_str(\\"${TEMPDIR}/d2/${CONTAINER_NAME}-latest.d2\\")" readme-vars.yml + yq -ei ".init_diagram |= load_str(\\"${TEMPDIR}/d2/${CONTAINER_NAME}-kasm.d2\\")" readme-vars.yml if [[ $(md5sum readme-vars.yml | cut -c1-8) != $(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml | cut -c1-8) ]]; then echo "'init_diagram' has been updated. Updating repo and exiting build, new one will trigger based on commit." mkdir -p ${TEMPDIR}/repo git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO} - git checkout -f master + git checkout -f kasm cp ${WORKSPACE}/readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/readme-vars.yml git add readme-vars.yml git commit -m 'Bot Updating Templated Files' - git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git kasm + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git kasm echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "Updating templates and exiting build, new one will trigger based on commit" rm -Rf ${TEMPDIR} @@ -385,7 +392,7 @@ pipeline { mkdir -p ${TEMPDIR}/repo git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO} - git checkout -f master + git checkout -f kasm cd ${TEMPDIR}/docker-${CONTAINER_NAME} mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE @@ -398,8 +405,8 @@ pipeline { fi git add readme-vars.yml ${TEMPLATED_FILES} git commit -m 'Bot Updating Templated Files' - git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git kasm + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git kasm echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "Updating templates and exiting build, new one will trigger based on commit" rm -Rf ${TEMPDIR} @@ -500,7 +507,7 @@ pipeline { // Exit the build if the Templated files were just updated stage('Template-exit') { when { - branch "master" + branch "kasm" environment name: 'CHANGE_ID', value: '' environment name: 'FILES_UPDATED', value: 'true' expression { @@ -513,10 +520,10 @@ pipeline { } } } - // If this is a master build check the S6 service file perms + // If this is a kasm build check the S6 service file perms stage("Check S6 Service file Permissions"){ when { - branch "master" + branch "kasm" environment name: 'CHANGE_ID', value: '' environment name: 'EXIT_STATUS', value: '' } @@ -609,13 +616,16 @@ pipeline { echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin + if [[ "${PACKAGE_CHECK}" != "true" ]]; then + declare -A pids IFS=',' read -ra CACHE <<< "$BUILDCACHE" for i in "${CACHE[@]}"; do docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & + pids[$!]="$i" done - for p in $(jobs -p); do - wait "$p" || { echo "job $p failed" >&2; exit 1; } + for p in "${!pids[@]}"; do + wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; } done fi ''' @@ -675,13 +685,16 @@ pipeline { echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin + if [[ "${PACKAGE_CHECK}" != "true" ]]; then + declare -A pids IFS=',' read -ra CACHE <<< "$BUILDCACHE" for i in "${CACHE[@]}"; do docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & + pids[$!]="$i" done - for p in $(jobs -p); do - wait "$p" || { echo "job $p failed" >&2; exit 1; } + for p in "${!pids[@]}"; do + wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; } done fi ''' @@ -735,12 +748,14 @@ pipeline { echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin if [[ "${PACKAGE_CHECK}" != "true" ]]; then + declare -A pids IFS=',' read -ra CACHE <<< "$BUILDCACHE" for i in "${CACHE[@]}"; do docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} & + pids[$!]="$i" done - for p in $(jobs -p); do - wait "$p" || { echo "job $p failed" >&2; exit 1; } + for p in "${!pids[@]}"; do + wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; } done fi ''' @@ -761,7 +776,7 @@ pipeline { // Take the image we just built and dump package versions for comparison stage('Update-packages') { when { - branch "master" + branch "kasm" environment name: 'CHANGE_ID', value: '' environment name: 'EXIT_STATUS', value: '' } @@ -778,20 +793,20 @@ pipeline { docker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v ${TEMPDIR}:/tmp \ - ghcr.io/anchore/syft:v1.26.1 \ + ghcr.io/anchore/syft:${SYFT_IMAGE_TAG} \ ${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 ) echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github" if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO} - git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master + git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f kasm cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/ cd ${TEMPDIR}/${LS_REPO}/ wait git add package_versions.txt git commit -m 'Bot Updating Package Versions' - git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git kasm + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git kasm echo "true" > /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER} echo "Package tag updated, stopping build process" else @@ -809,7 +824,7 @@ pipeline { // Exit the build if the package file was just updated stage('PACKAGE-exit') { when { - branch "master" + branch "kasm" environment name: 'CHANGE_ID', value: '' environment name: 'PACKAGE_UPDATED', value: 'true' environment name: 'EXIT_STATUS', value: '' @@ -823,7 +838,7 @@ pipeline { // Exit the build if this is just a package check and there are no changes to push stage('PACKAGECHECK-exit') { when { - branch "master" + branch "kasm" environment name: 'CHANGE_ID', value: '' environment name: 'PACKAGE_UPDATED', value: 'false' environment name: 'EXIT_STATUS', value: '' @@ -865,7 +880,7 @@ pipeline { CI_DOCKERENV="LSIO_FIRST_PARTY=true" fi fi - docker pull ghcr.io/linuxserver/ci:latest + docker pull ghcr.io/linuxserver/ci:${CITEST_IMAGETAG} if [ "${MULTIARCH}" == "true" ]; then docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64 docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} @@ -877,7 +892,7 @@ pipeline { -e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \ -e TAGS=\"${CI_TAGS}\" \ -e META_TAG=\"${META_TAG}\" \ - -e RELEASE_TAG=\"latest\" \ + -e RELEASE_TAG=\"kasm\" \ -e PORT=\"${CI_PORT}\" \ -e SSL=\"${CI_SSL}\" \ -e BASE=\"${DIST_IMAGE}\" \ @@ -888,7 +903,10 @@ pipeline { -e WEB_AUTH=\"${CI_AUTH}\" \ -e WEB_PATH=\"${CI_WEBPATH}\" \ -e NODE_NAME=\"${NODE_NAME}\" \ - -t ghcr.io/linuxserver/ci:latest \ + -e SYFT_IMAGE_TAG=\"${CI_SYFT_IMAGE_TAG:-${SYFT_IMAGE_TAG}}\" \ + -e COMMIT_SHA=\"${COMMIT_SHA}\" \ + -e BUILD_NUMBER=\"${BUILD_NUMBER}\" \ + -t ghcr.io/linuxserver/ci:${CITEST_IMAGETAG} \ python3 test_build.py''' } } @@ -914,9 +932,11 @@ pipeline { CACHEIMAGE=${i} fi done - docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:kasm -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \ + { if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } if [ -n "${SEMVER}" ]; then - docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \ + { if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } fi done ''' @@ -941,20 +961,27 @@ pipeline { CACHEIMAGE=${i} fi done - docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} - docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-latest -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-kasm -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \ + { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-kasm -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \ + { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } if [ -n "${SEMVER}" ]; then - docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} - docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \ + { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \ + { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } fi done for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do - docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest - docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} - - docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} + docker buildx imagetools create -t ${MANIFESTIMAGE}:kasm ${MANIFESTIMAGE}:amd64-kasm ${MANIFESTIMAGE}:arm64v8-kasm || \ + { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } + docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} || \ + { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } + docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} || \ + { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } if [ -n "${SEMVER}" ]; then - docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} + docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} || \ + { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; } fi done ''' @@ -964,7 +991,7 @@ pipeline { // If this is a public release tag it in the LS Github stage('Github-Tag-Push-Release') { when { - branch "master" + branch "kasm" expression { env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER } @@ -972,36 +999,54 @@ pipeline { environment name: 'EXIT_STATUS', value: '' } steps { - echo "Pushing New tag for current commit ${META_TAG}" - sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \ - -d '{"tag":"'${META_TAG}'",\ - "object": "'${COMMIT_SHA}'",\ - "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\ - "type": "commit",\ - "tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' ''' - echo "Pushing New release for Tag" sh '''#! /bin/bash + echo "Auto-generating release notes" + if [ "$(git tag --points-at HEAD)" != "" ]; then + echo "Existing tag points to current commit, suggesting no new LS changes" + AUTO_RELEASE_NOTES="No changes" + else + AUTO_RELEASE_NOTES=$(curl -fsL -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github+json" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases/generate-notes \ + -d '{"tag_name":"'${META_TAG}'",\ + "target_commitish": "kasm"}' \ + | jq -r '.body' | sed 's|## What.s Changed||') + fi + echo "Pushing New tag for current commit ${META_TAG}" + curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \ + -d '{"tag":"'${META_TAG}'",\ + "object": "'${COMMIT_SHA}'",\ + "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to kasm",\ + "type": "commit",\ + "tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' + echo "Pushing New release for Tag" echo "Updating base packages to ${PACKAGE_TAG}" > releasebody.json - echo '{"tag_name":"'${META_TAG}'",\ - "target_commitish": "master",\ - "name": "'${META_TAG}'",\ - "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start - printf '","draft": false,"prerelease": false}' >> releasebody.json - paste -d'\\0' start releasebody.json > releasebody.json.done - curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done''' + jq -n \ + --arg tag_name "$META_TAG" \ + --arg target_commitish "kasm" \ + --arg ci_url "${CI_URL:-N/A}" \ + --arg ls_notes "$AUTO_RELEASE_NOTES" \ + --arg remote_notes "$(cat releasebody.json)" \ + '{ + "tag_name": $tag_name, + "target_commitish": $target_commitish, + "name": $tag_name, + "body": ("**CI Report:**\\n\\n" + $ci_url + "\\n\\n**LinuxServer Changes:**\\n\\n" + $ls_notes + "\\n\\n**Remote Changes:**\\n\\n" + $remote_notes), + "draft": false, + "prerelease": true }' > releasebody.json.done + curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done + ''' } } // Add protection to the release branch stage('Github-Release-Branch-Protection') { when { - branch "master" + branch "kasm" environment name: 'CHANGE_ID', value: '' environment name: 'EXIT_STATUS', value: '' } steps { - echo "Setting up protection for release branch master" + echo "Setting up protection for release branch kasm" sh '''#! /bin/bash - curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/master/protection \ + curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/kasm/protection \ -d $(jq -c . << EOF { "required_status_checks": null, diff --git a/README.md b/README.md index 889687e..2469696 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,10 @@ - + [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io) [![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!") [![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.") [![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.") -[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.") [![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.") [![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget") @@ -22,7 +21,6 @@ Find us at: * [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more! * [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team. * [Discourse](https://discourse.linuxserver.io) - post on our community forum. -* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images. * [GitHub](https://github.com/linuxserver) - view the source for all of our repositories. * [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget @@ -36,8 +34,8 @@ Find us at: [![Quay.io](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/chromium) [![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/chromium.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/chromium) [![Docker Stars](https://img.shields.io/docker/stars/linuxserver/chromium.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/chromium) -[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-chromium%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-chromium/job/master/) -[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fchromium%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/chromium/latest/index.html) +[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-chromium%2Fjob%2Fkasm%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-chromium/job/kasm/) +[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fchromium%2Fkasm%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/chromium/kasm/index.html) [Chromium](https://www.chromium.org/chromium-projects/) is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web. @@ -47,7 +45,7 @@ Find us at: We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/). -Simply pulling `lscr.io/linuxserver/chromium:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. +Simply pulling `lscr.io/linuxserver/chromium:kasm` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: @@ -55,7 +53,15 @@ The architectures supported by this image are: | :----: | :----: | ---- | | x86-64 | ✅ | amd64-\ | | arm64 | ✅ | arm64v8-\ | -| armhf | ❌ | | + +## Version Tags + +This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. + +| Tag | Available | Description | +| :----: | :----: |--- | +| latest | ✅ | Latest releases using the selkies base | +| kasm | ✅ | Latest releases using the kasmvnc base | ## Application Setup @@ -157,7 +163,7 @@ And to assign the GPU in compose: ``` services: chromium: - image: lscr.io/linuxserver/chromium:latest + image: lscr.io/linuxserver/chromium:kasm deploy: resources: reservations: @@ -194,7 +200,7 @@ It is possible to install extra packages during container start using [universal To help you get started creating a container from this image you can either use docker-compose or the docker cli. >[!NOTE] ->Unless a parameter is flaged as 'optional', it is *mandatory* and a value must be provided. +>Unless a parameter is flagged as 'optional', it is *mandatory* and a value must be provided. ### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose)) @@ -202,7 +208,7 @@ To help you get started creating a container from this image you can either use --- services: chromium: - image: lscr.io/linuxserver/chromium:latest + image: lscr.io/linuxserver/chromium:kasm container_name: chromium security_opt: - seccomp:unconfined #optional @@ -212,7 +218,7 @@ services: - TZ=Etc/UTC - CHROME_CLI=https://www.linuxserver.io/ #optional volumes: - - /path/to/config:/config + - /path/to/chromium/config:/config ports: - 3000:3000 - 3001:3001 @@ -232,10 +238,10 @@ docker run -d \ -e CHROME_CLI=https://www.linuxserver.io/ `#optional` \ -p 3000:3000 \ -p 3001:3001 \ - -v /path/to/config:/config \ + -v /path/to/chromium/config:/config \ --shm-size="1gb" \ --restart unless-stopped \ - lscr.io/linuxserver/chromium:latest + lscr.io/linuxserver/chromium:kasm ``` ## Parameters @@ -318,7 +324,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to * Image version number: ```bash - docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/chromium:latest + docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/chromium:kasm ``` ## Updating Info @@ -366,7 +372,7 @@ Below are the instructions for updating containers: * Update the image: ```bash - docker pull lscr.io/linuxserver/chromium:latest + docker pull lscr.io/linuxserver/chromium:kasm ``` * Stop the running container: @@ -403,7 +409,7 @@ cd docker-chromium docker build \ --no-cache \ --pull \ - -t lscr.io/linuxserver/chromium:latest . + -t lscr.io/linuxserver/chromium:kasm . ``` The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static` diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 1d25798..ca51149 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -3,10 +3,9 @@ # jenkins variables project_name: docker-chromium external_type: os -release_type: stable -release_tag: latest -ls_branch: master -build_armhf: false +release_type: prerelease +release_tag: kasm +ls_branch: kasm repo_vars: - BUILD_VERSION_ARG = 'CHROMIUM_VERSION' - LS_USER = 'linuxserver' diff --git a/package_versions.txt b/package_versions.txt index 440b571..4817795 100644 --- a/package_versions.txt +++ b/package_versions.txt @@ -30,7 +30,7 @@ NAME VE @tufjs/canonical-json 2.0.0 npm @tufjs/models 2.0.1 npm @types/cors 2.8.19 npm -@types/node 24.0.3 npm +@types/node 24.0.13 npm abbrev 2.0.0 npm accepts 1.3.8 npm adduser 3.134 deb @@ -75,16 +75,16 @@ catatonit 0. chalk 4.1.2 npm chalk 5.3.0 npm chownr 2.0.0 npm -chromium 137.0.7151.119-1~deb12u1 deb -chromium-common 137.0.7151.119-1~deb12u1 deb -chromium-l10n 137.0.7151.119-1~deb12u1 deb +chromium 145.0.7632.75-1~deb12u1 deb +chromium-common 145.0.7632.75-1~deb12u1 deb +chromium-l10n 145.0.7632.75-1~deb12u1 deb ci-info 4.0.0 npm cidr-regex 4.1.1 npm clean-stack 2.2.0 npm cli-columns 4.0.0 npm -cloud.google.com/go/compute/metadata v0.5.2 go-module +cloud.google.com/go/compute/metadata v0.6.0 go-module cloud.google.com/go/logging v1.9.0 go-module -cloud.google.com/go/longrunning v0.5.4 go-module +cloud.google.com/go/longrunning v0.5.5 go-module cmd-shim 6.0.3 npm code.cloudfoundry.org/clock v1.1.0 go-module color-convert 2.0.1 npm (+1 duplicate) @@ -98,7 +98,7 @@ content-type 1. cookie 0.7.1 npm cookie 0.7.2 npm cookie-signature 1.0.6 npm -corepack 0.32.0 npm +corepack 0.29.4 npm coreutils 9.1-1 deb cors 2.8.5 npm cpp 4:12.2.0-3 deb @@ -145,10 +145,10 @@ dirmngr 2. distro 1.8.0 python distro-info-data 0.58+deb12u4 deb dmsetup 2:1.02.185-2 deb -docker-buildx-plugin 0.24.0-1~debian.12~bookworm deb -docker-ce 5:28.2.2-1~debian.12~bookworm deb -docker-ce-cli 5:28.2.2-1~debian.12~bookworm deb -docker-compose-plugin 2.36.2-1~debian.12~bookworm deb +docker-buildx-plugin 0.25.0-1~debian.12~bookworm deb +docker-ce 5:28.3.2-1~debian.12~bookworm deb +docker-ce-cli 5:28.3.2-1~debian.12~bookworm deb +docker-compose-plugin 2.38.2-1~debian.12~bookworm deb dpkg 1.21.22 deb dunder-proto 1.0.1 npm dunst 1.9.0-0.1 deb @@ -211,7 +211,7 @@ github.com/DefangLabs/secret-detector v0 github.com/Graylog2/go-gelf v0.0.0-20191017102106-1550ee647df0 go-module github.com/Masterminds/semver/v3 v3.2.1 go-module (+1 duplicate) github.com/Microsoft/hcsshim v0.11.7 go-module (+1 duplicate) -github.com/Microsoft/hcsshim v0.12.9 go-module +github.com/Microsoft/hcsshim v0.13.0 go-module github.com/RackSec/srslog v0.0.0-20180709174129-a4725f04ec91 go-module github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d go-module github.com/agext/levenshtein v1.2.3 go-module (+1 duplicate) @@ -249,7 +249,7 @@ github.com/cilium/ebpf v0 github.com/cilium/ebpf v0.9.1 go-module (+3 duplicates) github.com/cloudflare/cfssl v1.6.4 go-module github.com/compose-spec/compose-go/v2 v2.6.3 go-module -github.com/compose-spec/compose-go/v2 v2.6.4 go-module +github.com/compose-spec/compose-go/v2 v2.7.1 go-module github.com/container-storage-interface/spec v1.5.0 go-module github.com/containerd/accelerated-container-image v1.3.0 go-module github.com/containerd/aufs v1.0.0 go-module @@ -258,12 +258,13 @@ github.com/containerd/cgroups v1 github.com/containerd/cgroups/v3 v3.0.2 go-module (+3 duplicates) github.com/containerd/cgroups/v3 v3.0.5 go-module github.com/containerd/console v1.0.3 go-module (+4 duplicates) -github.com/containerd/console v1.0.4 go-module (+3 duplicates) +github.com/containerd/console v1.0.4 go-module +github.com/containerd/console v1.0.5 go-module (+2 duplicates) github.com/containerd/containerd v1.7.27 go-module (+4 duplicates) -github.com/containerd/containerd/api v1.8.0 go-module (+5 duplicates) -github.com/containerd/containerd/api v1.9.0 go-module (+1 duplicate) -github.com/containerd/containerd/v2 v2.0.5 go-module (+1 duplicate) +github.com/containerd/containerd/api v1.8.0 go-module (+4 duplicates) +github.com/containerd/containerd/api v1.9.0 go-module (+2 duplicates) github.com/containerd/containerd/v2 v2.1.1 go-module +github.com/containerd/containerd/v2 v2.1.3 go-module (+1 duplicate) github.com/containerd/continuity v0.4.4 go-module (+4 duplicates) github.com/containerd/continuity v0.4.5 go-module (+2 duplicates) github.com/containerd/errdefs v0.3.0 go-module (+4 duplicates) @@ -287,9 +288,9 @@ github.com/containerd/typeurl/v2 v2 github.com/containerd/typeurl/v2 v2.2.3 go-module (+2 duplicates) github.com/containerd/zfs v1.1.0 go-module github.com/containernetworking/cni v1.1.2 go-module (+1 duplicate) -github.com/containernetworking/cni v1.2.3 go-module +github.com/containernetworking/cni v1.3.0 go-module github.com/containernetworking/plugins v1.2.0 go-module -github.com/containernetworking/plugins v1.6.2 go-module +github.com/containernetworking/plugins v1.7.1 go-module github.com/containers/ocicrypt v1.1.10 go-module github.com/coreos/go-systemd/v22 v22.5.0 go-module (+5 duplicates) github.com/cyphar/filepath-securejoin v0.4.1 go-module (+1 duplicate) @@ -298,14 +299,16 @@ github.com/deckarep/golang-set/v2 v2 github.com/dimchansky/utfbom v1.1.1 go-module github.com/distribution/reference v0.6.0 go-module (+4 duplicates) github.com/docker/buildx UNKNOWN go-module -github.com/docker/buildx v0.24.0 go-module -github.com/docker/cli v28.1.1+incompatible go-module (+1 duplicate) -github.com/docker/cli-docs-tool v0.9.0 go-module (+1 duplicate) +github.com/docker/buildx v0.25.0 go-module +github.com/docker/cli v28.2.2+incompatible go-module +github.com/docker/cli v28.3.1+incompatible go-module +github.com/docker/cli-docs-tool v0.10.0 go-module (+1 duplicate) github.com/docker/cli/cmd/docker UNKNOWN go-module github.com/docker/compose/v2 UNKNOWN go-module github.com/docker/distribution v2.8.3+incompatible go-module (+1 duplicate) -github.com/docker/docker v28.1.1+incompatible go-module (+1 duplicate) -github.com/docker/docker v28.2.2 go-module (+1 duplicate) +github.com/docker/docker v28.2.2+incompatible go-module +github.com/docker/docker v28.3.1+incompatible go-module +github.com/docker/docker v28.3.2 go-module (+1 duplicate) github.com/docker/docker-credential-helpers v0.9.3 go-module (+1 duplicate) github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c go-module github.com/docker/go-connections v0.5.0 go-module (+2 duplicates) @@ -322,19 +325,18 @@ github.com/felixge/httpsnoop v1 github.com/fernet/fernet-go v0.0.0-20211208181803-9f70042a33ee go-module github.com/fluent/fluent-logger-golang v1.9.0 go-module github.com/fsnotify/fsnotify v1.6.0 go-module -github.com/fsnotify/fsnotify v1.7.0 go-module +github.com/fsnotify/fsnotify v1.9.0 go-module github.com/fvbommel/sortorder v1.0.1 go-module github.com/fvbommel/sortorder v1.1.0 go-module github.com/fxamacker/cbor/v2 v2.7.0 go-module (+1 duplicate) github.com/go-jose/go-jose/v3 v3.0.3 go-module github.com/go-logr/logr v1.4.2 go-module (+4 duplicates) github.com/go-logr/stdr v1.2.2 go-module (+4 duplicates) -github.com/go-openapi/jsonpointer v0.19.6 go-module -github.com/go-openapi/jsonpointer v0.21.0 go-module +github.com/go-openapi/jsonpointer v0.21.0 go-module (+1 duplicate) github.com/go-openapi/jsonreference v0.20.2 go-module (+1 duplicate) -github.com/go-openapi/swag v0.22.4 go-module -github.com/go-openapi/swag v0.23.0 go-module -github.com/go-viper/mapstructure/v2 v2.0.0 go-module (+1 duplicate) +github.com/go-openapi/swag v0.23.0 go-module (+1 duplicate) +github.com/go-viper/mapstructure/v2 v2.0.0 go-module +github.com/go-viper/mapstructure/v2 v2.3.0 go-module github.com/godbus/dbus/v5 v5.1.0 go-module (+5 duplicates) github.com/gofrs/flock v0.12.1 go-module (+2 duplicates) github.com/gogo/protobuf v1.3.2 go-module (+7 duplicates) @@ -359,8 +361,7 @@ github.com/gorilla/websocket v1 github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 go-module github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 go-module (+1 duplicate) github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 go-module -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 go-module (+1 duplicate) -github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 go-module +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 go-module (+2 duplicates) github.com/hashicorp/errwrap v1.1.0 go-module (+2 duplicates) github.com/hashicorp/go-cleanhttp v0.5.2 go-module (+1 duplicate) github.com/hashicorp/go-cty-funcs v0.0.0-20250210171435-dda779884a9f go-module @@ -376,8 +377,7 @@ github.com/hashicorp/golang-lru/v2 v2 github.com/hashicorp/hcl/v2 v2.23.0 go-module github.com/hashicorp/memberlist v0.4.0 go-module github.com/hashicorp/serf v0.8.5 go-module -github.com/imdario/mergo v0.3.16 go-module -github.com/in-toto/in-toto-golang v0.5.0 go-module (+2 duplicates) +github.com/in-toto/in-toto-golang v0.9.0 go-module (+2 duplicates) github.com/inhies/go-bytesize v0.0.0-20220417184213-4913239db9cf go-module github.com/intel/goresctrl v0.5.0 go-module (+1 duplicate) github.com/ishidawataru/sctp v0.0.0-20230406120618-7ff4192f6ff2 go-module (+1 duplicate) @@ -396,7 +396,7 @@ github.com/mattn/go-runewidth v0 github.com/mattn/go-shellwords v1.0.12 go-module (+1 duplicate) github.com/matttproud/golang_protobuf_extensions v1.0.4 go-module github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b go-module -github.com/miekg/dns v1.1.61 go-module +github.com/miekg/dns v1.1.66 go-module github.com/miekg/pkcs11 v1.1.1 go-module github.com/minio/sha256-simd v1.0.0 go-module (+1 duplicate) github.com/mistifyio/go-zfs/v3 v3.0.1 go-module (+1 duplicate) @@ -405,7 +405,8 @@ github.com/mitchellh/go-wordwrap v0 github.com/mitchellh/hashstructure/v2 v2.0.2 go-module (+2 duplicates) github.com/mitchellh/mapstructure v1.5.0 go-module github.com/mitchellh/reflectwalk v1.0.2 go-module -github.com/moby/buildkit v0.22.0 go-module (+2 duplicates) +github.com/moby/buildkit v0.23.0 go-module +github.com/moby/buildkit v0.23.2 go-module (+1 duplicate) github.com/moby/docker-image-spec v1.3.1 go-module (+2 duplicates) github.com/moby/go-archive v0.1.0 go-module (+2 duplicates) github.com/moby/ipvs v1.1.0 go-module @@ -414,7 +415,7 @@ github.com/moby/patternmatcher v0 github.com/moby/pubsub v1.0.0 go-module github.com/moby/spdystream v0.2.0 go-module github.com/moby/spdystream v0.5.0 go-module (+1 duplicate) -github.com/moby/swarmkit/v2 v2.0.0-20250103191802-8c1959736554 go-module +github.com/moby/swarmkit/v2 v2.0.0 go-module github.com/moby/sys/atomicwriter v0.1.0 go-module (+2 duplicates) github.com/moby/sys/capability v0.4.0 go-module github.com/moby/sys/mount v0.3.4 go-module @@ -437,7 +438,7 @@ github.com/morikuni/aec v1 github.com/mrunalp/fileutils v0.5.1 go-module github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 go-module (+2 duplicates) github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f go-module (+1 duplicate) -github.com/opencontainers/cgroups v0.0.2 go-module +github.com/opencontainers/cgroups v0.0.3 go-module github.com/opencontainers/go-digest v1.0.0 go-module (+7 duplicates) github.com/opencontainers/image-spec v1.1.0 go-module (+4 duplicates) github.com/opencontainers/image-spec v1.1.1 go-module (+2 duplicates) @@ -450,32 +451,31 @@ github.com/opencontainers/selinux v1 github.com/opencontainers/selinux v1.12.0 go-module github.com/package-url/packageurl-go v0.1.1 go-module github.com/pelletier/go-toml v1.9.5 go-module (+4 duplicates) -github.com/pelletier/go-toml/v2 v2.2.3 go-module +github.com/pelletier/go-toml/v2 v2.2.4 go-module github.com/philhofer/fwd v1.1.2 go-module github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c go-module github.com/pkg/errors v0.9.1 go-module (+7 duplicates) github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 go-module (+2 duplicates) github.com/pmezard/go-difflib v1.0.0 go-module (+1 duplicate) github.com/prometheus/client_golang v1.16.0 go-module -github.com/prometheus/client_golang v1.20.5 go-module -github.com/prometheus/client_golang v1.22.0 go-module +github.com/prometheus/client_golang v1.22.0 go-module (+1 duplicate) github.com/prometheus/client_model v0.3.0 go-module github.com/prometheus/client_model v0.6.1 go-module (+1 duplicate) github.com/prometheus/common v0.42.0 go-module -github.com/prometheus/common v0.55.0 go-module -github.com/prometheus/common v0.62.0 go-module +github.com/prometheus/common v0.62.0 go-module (+1 duplicate) github.com/prometheus/procfs v0.10.1 go-module github.com/prometheus/procfs v0.15.1 go-module (+1 duplicate) github.com/rivo/uniseg v0.2.0 go-module (+1 duplicate) github.com/rootless-containers/rootlesskit/v2 v2.3.4 go-module +github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 go-module github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 go-module github.com/seccomp/libseccomp-golang v0.10.0 go-module -github.com/secure-systems-lab/go-securesystemslib v0.4.0 go-module (+2 duplicates) +github.com/secure-systems-lab/go-securesystemslib v0.6.0 go-module (+2 duplicates) github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b go-module (+1 duplicate) github.com/shibumi/go-pathspec v1.3.0 go-module (+2 duplicates) github.com/sirupsen/logrus v1.9.3 go-module (+9 duplicates) github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 go-module -github.com/spdx/tools-golang v0.5.3 go-module +github.com/spdx/tools-golang v0.5.5 go-module github.com/spf13/cobra v1.9.1 go-module (+2 duplicates) github.com/spf13/pflag v1.0.5 go-module github.com/spf13/pflag v1.0.6 go-module (+2 duplicates) @@ -487,10 +487,10 @@ github.com/theupdateframework/notary v0 github.com/tilt-dev/fsnotify v1.4.8-0.20220602155310-fff9c274a375 go-module github.com/tinylib/msgp v1.1.8 go-module github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323 go-module (+2 duplicates) -github.com/tonistiigi/fsutil v0.0.0-20250417144416-3f76f8130144 go-module (+2 duplicates) -github.com/tonistiigi/go-actions-cache v0.0.0-20250228231703-3e9a6642607f go-module +github.com/tonistiigi/fsutil v0.0.0-20250605211040-586307ad452f go-module (+2 duplicates) +github.com/tonistiigi/go-actions-cache v0.0.0-20250626083717-378c5ed1ddd9 go-module github.com/tonistiigi/go-archvariant v1.0.0 go-module -github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4 go-module (+2 duplicates) +github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0 go-module (+2 duplicates) github.com/tonistiigi/jaeger-ui-rest v0.0.0-20250408171107-3dd17559e117 go-module github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea go-module (+2 duplicates) github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab go-module (+1 duplicate) @@ -517,50 +517,42 @@ gnupg 2. gnupg-l10n 2.2.40-1.1 deb gnupg-utils 2.2.40-1.1 deb go.etcd.io/bbolt v1.3.10 go-module -go.etcd.io/bbolt v1.3.11 go-module +go.etcd.io/bbolt v1.4.0 go-module go.etcd.io/etcd/client/pkg/v3 v3.5.16 go-module go.etcd.io/etcd/pkg/v3 v3.5.16 go-module go.etcd.io/etcd/raft/v3 v3.5.16 go-module go.etcd.io/etcd/server/v3 v3.5.16 go-module go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1 go-module go.opencensus.io v0.24.0 go-module -go.opentelemetry.io/auto/sdk v1.1.0 go-module +go.opentelemetry.io/auto/sdk v1.1.0 go-module (+2 duplicates) go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 go-module -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 go-module (+1 duplicate) -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 go-module -go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.56.0 go-module (+2 duplicates) +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 go-module (+2 duplicates) +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.56.0 go-module (+1 duplicate) +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.60.0 go-module go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 go-module (+1 duplicate) -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 go-module (+1 duplicate) -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 go-module +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 go-module (+2 duplicates) go.opentelemetry.io/contrib/processors/baggagecopy v0.4.0 go-module go.opentelemetry.io/otel v1.21.0 go-module (+1 duplicate) -go.opentelemetry.io/otel v1.31.0 go-module (+1 duplicate) -go.opentelemetry.io/otel v1.35.0 go-module -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 go-module (+2 duplicates) -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 go-module (+2 duplicates) +go.opentelemetry.io/otel v1.35.0 go-module (+2 duplicates) +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 go-module (+1 duplicate) +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0 go-module +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 go-module (+1 duplicate) +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.35.0 go-module go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 go-module -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 go-module (+1 duplicate) -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 go-module +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 go-module (+2 duplicates) go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 go-module -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 go-module (+1 duplicate) -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 go-module +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 go-module (+2 duplicates) go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 go-module -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 go-module (+1 duplicate) -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0 go-module +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0 go-module (+2 duplicates) go.opentelemetry.io/otel/metric v1.21.0 go-module (+1 duplicate) -go.opentelemetry.io/otel/metric v1.31.0 go-module (+1 duplicate) -go.opentelemetry.io/otel/metric v1.35.0 go-module +go.opentelemetry.io/otel/metric v1.35.0 go-module (+2 duplicates) go.opentelemetry.io/otel/sdk v1.21.0 go-module -go.opentelemetry.io/otel/sdk v1.31.0 go-module (+1 duplicate) -go.opentelemetry.io/otel/sdk v1.35.0 go-module -go.opentelemetry.io/otel/sdk/metric v1.31.0 go-module (+1 duplicate) -go.opentelemetry.io/otel/sdk/metric v1.35.0 go-module +go.opentelemetry.io/otel/sdk v1.35.0 go-module (+2 duplicates) +go.opentelemetry.io/otel/sdk/metric v1.35.0 go-module (+2 duplicates) go.opentelemetry.io/otel/trace v1.21.0 go-module (+1 duplicate) -go.opentelemetry.io/otel/trace v1.31.0 go-module (+1 duplicate) -go.opentelemetry.io/otel/trace v1.35.0 go-module +go.opentelemetry.io/otel/trace v1.35.0 go-module (+2 duplicates) go.opentelemetry.io/proto/otlp v1.0.0 go-module -go.opentelemetry.io/proto/otlp v1.3.1 go-module (+1 duplicate) -go.opentelemetry.io/proto/otlp v1.5.0 go-module +go.opentelemetry.io/proto/otlp v1.5.0 go-module (+2 duplicates) go.uber.org/atomic v1.9.0 go-module go.uber.org/mock v0.5.2 go-module go.uber.org/multierr v1.8.0 go-module @@ -568,7 +560,6 @@ go.uber.org/zap v1 golang.org/x/crypto v0.31.0 go-module golang.org/x/crypto v0.37.0 go-module (+2 duplicates) golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 go-module -golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 go-module golang.org/x/mod v0.17.0 go-module golang.org/x/mod v0.24.0 go-module golang.org/x/net v0.33.0 go-module (+3 duplicates) @@ -576,37 +567,36 @@ golang.org/x/net v0 golang.org/x/oauth2 v0.11.0 go-module golang.org/x/oauth2 v0.29.0 go-module (+2 duplicates) golang.org/x/sync v0.10.0 go-module (+4 duplicates) -golang.org/x/sync v0.13.0 go-module (+1 duplicate) -golang.org/x/sync v0.14.0 go-module +golang.org/x/sync v0.14.0 go-module (+1 duplicate) +golang.org/x/sync v0.15.0 go-module golang.org/x/sys v0.28.0 go-module (+5 duplicates) -golang.org/x/sys v0.32.0 go-module (+2 duplicates) -golang.org/x/sys v0.33.0 go-module +golang.org/x/sys v0.33.0 go-module (+3 duplicates) golang.org/x/term v0.27.0 go-module golang.org/x/term v0.31.0 go-module (+1 duplicate) golang.org/x/text v0.21.0 go-module (+2 duplicates) golang.org/x/text v0.24.0 go-module (+2 duplicates) golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 go-module golang.org/x/time v0.11.0 go-module (+2 duplicates) -google.golang.org/api v0.155.0 go-module +google.golang.org/api v0.160.0 go-module google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3 go-module (+4 duplicates) -google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 go-module +google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de go-module google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f go-module -google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38 go-module (+1 duplicate) -google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a go-module +google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a go-module (+1 duplicate) +google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463 go-module google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda go-module (+4 duplicates) -google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 go-module (+1 duplicate) -google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a go-module +google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a go-module (+1 duplicate) +google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 go-module google.golang.org/grpc v1.59.0 go-module (+4 duplicates) -google.golang.org/grpc v1.69.4 go-module (+1 duplicate) -google.golang.org/grpc v1.72.1 go-module +google.golang.org/grpc v1.72.2 go-module (+1 duplicate) +google.golang.org/grpc v1.73.0 go-module google.golang.org/protobuf v1.33.0 go-module -google.golang.org/protobuf v1.35.2 go-module (+6 duplicates) -google.golang.org/protobuf v1.36.6 go-module +google.golang.org/protobuf v1.35.2 go-module (+4 duplicates) +google.golang.org/protobuf v1.36.6 go-module (+2 duplicates) gopd 1.2.0 npm -gopkg.in/evanphx/json-patch.v4 v4.12.0 go-module +gopkg.in/evanphx/json-patch.v4 v4.12.0 go-module (+1 duplicate) gopkg.in/inf.v0 v0.9.1 go-module (+3 duplicates) gopkg.in/ini.v1 v1.67.0 go-module -gopkg.in/yaml.v2 v2.4.0 go-module (+2 duplicates) +gopkg.in/yaml.v2 v2.4.0 go-module (+1 duplicate) gopkg.in/yaml.v3 v3.0.1 go-module (+3 duplicates) gpg 2.2.40-1.1 deb gpg-agent 2.2.40-1.1 deb @@ -663,24 +653,19 @@ jsonparse 1. just-diff 6.0.2 npm just-diff-apply 5.5.0 npm k8s.io/api v0.26.2 go-module -k8s.io/api v0.31.2 go-module -k8s.io/api v0.32.3 go-module +k8s.io/api v0.32.3 go-module (+1 duplicate) k8s.io/apimachinery v0.27.4 go-module (+1 duplicate) -k8s.io/apimachinery v0.31.2 go-module -k8s.io/apimachinery v0.32.3 go-module +k8s.io/apimachinery v0.32.3 go-module (+1 duplicate) k8s.io/apiserver v0.26.2 go-module k8s.io/client-go v0.26.2 go-module -k8s.io/client-go v0.31.2 go-module -k8s.io/client-go v0.32.3 go-module +k8s.io/client-go v0.32.3 go-module (+1 duplicate) k8s.io/component-base v0.26.2 go-module k8s.io/cri-api v0.27.1 go-module k8s.io/klog/v2 v2.130.1 go-module (+2 duplicates) k8s.io/klog/v2 v2.90.1 go-module -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 go-module -k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f go-module +k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f go-module (+1 duplicate) k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 go-module -k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 go-module -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 go-module +k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 go-module (+1 duplicate) kbd 2.5.1-1+b1 deb kclient 0.4.1 npm keyboard-configuration 1.221 deb @@ -811,8 +796,8 @@ libgcc-s1 12 libgcrypt20 1.10.1-3 deb libgdbm-compat4 1.23-3 deb libgdbm6 1.23-3 deb -libgdk-pixbuf-2.0-0 2.42.10+dfsg-1+deb12u1 deb -libgdk-pixbuf2.0-common 2.42.10+dfsg-1+deb12u1 deb +libgdk-pixbuf-2.0-0 2.42.10+dfsg-1+deb12u2 deb +libgdk-pixbuf2.0-common 2.42.10+dfsg-1+deb12u2 deb libgfortran5 12.2.0-14+deb12u1 deb libgif7 5.2.1-2.5 deb libgirepository-1.0-1 1.74.0-3 deb @@ -850,7 +835,7 @@ libheif1 1. libhogweed6 3.8.1-2 deb libhwy1 1.0.3-3+deb12u1 deb libice6 2:1.0.10-1 deb -libicu72 72.1-3 deb +libicu72 72.1-3+deb12u1 deb libid3tag0 0.15.1b-14 deb libidn12 1.41-1 deb libidn2-0 2.3.3-1+b1 deb @@ -867,7 +852,7 @@ libjbig2dec0 0. libjpeg62-turbo 1:2.1.5-2 deb libjq1 1.6-2.1 deb libjson-c5 0.16-2 deb -libjxl0.7 0.7.0-10 deb +libjxl0.7 0.7.0-10+deb12u1 deb libk5crypto3 1.20.1-2+deb12u3 deb libkeyutils1 1.6.3-2 deb libkmod2 30+20221128-1 deb @@ -1118,7 +1103,7 @@ libxi6 2: libxinerama1 2:1.1.4-3 deb libxkbcommon0 1.5.0-1 deb libxkbfile1 1:1.1.0-1 deb -libxml2 2.9.14+dfsg-1.3~deb12u1 deb +libxml2 2.9.14+dfsg-1.3~deb12u2 deb libxmlb2 0.3.10-2 deb libxmu6 2:1.1.3-3 deb libxmuu1 2:1.1.3-3 deb @@ -1127,7 +1112,7 @@ libxpm4 1: libxrandr2 2:1.5.2-2+b1 deb libxrender1 1:0.9.10-1.1 deb libxshmfence1 1.3-1 deb -libxslt1.1 1.1.35-1+deb12u1 deb +libxslt1.1 1.1.35-1+deb12u3 deb libxss1 1:1.2.3-1 deb libxstring-perl 0.005-2+b1 deb libxt6 1:1.2.1-1.1 deb @@ -1184,7 +1169,7 @@ ms 2. ms 2.1.2 npm ms 2.1.3 npm (+5 duplicates) mute-stream 1.0.0 npm -nan 2.22.2 npm +nan 2.23.0 npm ncurses-base 6.4-4 deb ncurses-bin 6.4-4 deb negotiator 0.6.3 npm (+1 duplicate) @@ -1193,7 +1178,7 @@ netcat-traditional 1. nginx 1.22.1-9+deb12u2 deb nginx-common 1.22.1-9+deb12u2 deb node-gyp 10.1.0 npm -nodejs 18.20.8-1nodesource1 deb +nodejs 18.20.6-1nodesource1 deb nopt 7.2.1 npm normalize-package-data 6.0.2 npm npm 10.8.2 npm @@ -1304,11 +1289,10 @@ side-channel-list 1. side-channel-map 1.0.1 npm side-channel-weakmap 1.0.2 npm signal-exit 4.1.0 npm -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd go-module (+1 duplicate) -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 go-module +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd go-module +sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 go-module (+1 duplicate) sigs.k8s.io/structured-merge-diff/v4 v4.2.3 go-module -sigs.k8s.io/structured-merge-diff/v4 v4.4.1 go-module -sigs.k8s.io/structured-merge-diff/v4 v4.4.2 go-module +sigs.k8s.io/structured-merge-diff/v4 v4.4.2 go-module (+1 duplicate) sigs.k8s.io/yaml v1.3.0 go-module (+1 duplicate) sigs.k8s.io/yaml v1.4.0 go-module (+2 duplicates) sigstore 2.3.1 npm @@ -1330,12 +1314,13 @@ ssl-cert 1. ssri 10.0.6 npm statuses 2.0.1 npm stdlib go1.23.7 go-module (+5 duplicates) -stdlib go1.24.3 go-module (+4 duplicates) +stdlib go1.24.4 go-module +stdlib go1.24.5 go-module (+3 duplicates) string-width 4.2.3 npm (+1 duplicate) string-width 5.1.2 npm (+1 duplicate) strip-ansi 6.0.1 npm (+1 duplicate) strip-ansi 7.1.0 npm (+1 duplicate) -sudo 1.9.13p3-1+deb12u1 deb +sudo 1.9.13p3-1+deb12u2 deb supports-color 7.2.0 npm supports-color 9.4.0 npm systemd 252.38-1~deb12u1 deb @@ -1391,8 +1376,8 @@ xfonts-encodings 1: xfonts-utils 1:7.7+6 deb xkb-data 2.35.1-1 deb xml-core 0.18+nmu1 deb -xserver-common 2:21.1.7-3+deb12u9 deb -xserver-xorg-core 2:21.1.7-3+deb12u9 deb +xserver-common 2:21.1.7-3+deb12u10 deb +xserver-xorg-core 2:21.1.7-3+deb12u10 deb xserver-xorg-video-amdgpu 23.0.0-1 deb xserver-xorg-video-ati 1:19.1.0-3 deb xserver-xorg-video-intel 2:2.99.917+git20210115-1 deb diff --git a/readme-vars.yml b/readme-vars.yml index dc3ded3..85be50b 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -13,16 +13,16 @@ available_architectures: - {arch: "{{ arch_x86_64 }}", tag: "latest"} - {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} # development version -development_versions: false +development_versions: true +development_versions_items: + - {tag: "latest", desc: "Latest releases using the selkies base"} + - {tag: "kasm", desc: "Latest releases using the kasmvnc base"} # container parameters common_param_env_vars_enabled: true param_container_name: "{{ project_name }}" -param_usage_include_env: true -param_env_vars: - - {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: "/config", vol_host_path: "/path/to/config", desc: "Users home directory in the container, stores local files and settings"} + - {vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Users home directory in the container, stores local files and settings"} param_usage_include_ports: true param_ports: - {external_port: "3000", internal_port: "3000", port_desc: "Chromium desktop gui."} @@ -51,7 +51,7 @@ app_setup_block: | * https://yourhost:3001/ # init diagram init_diagram: | - "chromium:latest": { + "chromium:kasm": { docker-mods base { fix-attr +\nlegacy cont-init @@ -108,7 +108,7 @@ init_diagram: | Base Images: { "baseimage-kasmvnc:debianbookworm" <- "baseimage-debian:bookworm" } - "chromium:latest" <- Base Images + "chromium:kasm" <- Base Images # changelog changelogs: - {date: "03.04.25:", desc: "Update chromium launch options to improve performance."}