Compare commits

..

1 Commits

Author SHA1 Message Date
aptalca
7929311233 listen on both ipv4 and ipv6 2024-04-21 10:15:27 -04:00
10 changed files with 188 additions and 242 deletions

View File

@@ -12,20 +12,17 @@ jobs:
- name: External Trigger
if: github.ref == 'refs/heads/master'
run: |
printf "# External trigger for docker-code-server\n\n" >> $GITHUB_STEP_SUMMARY
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_CODE_SERVER_MASTER }}" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github secret \`PAUSE_EXTERNAL_TRIGGER_CODE_SERVER_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_CODE_SERVER_MASTER is set; skipping trigger. ****"
echo "Github secret \`PAUSE_EXTERNAL_TRIGGER_CODE_SERVER_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of master branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_CODE_SERVER_MASTER\`" >> $GITHUB_STEP_SUMMARY
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_CODE_SERVER_MASTER\". ****"
echo "External trigger running off of master branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_CODE_SERVER_MASTER\`" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving external version ****"
EXT_RELEASE=$(curl -u ${{ secrets.CR_USER }}:${{ secrets.CR_PAT }} -sX GET https://api.github.com/repos/coder/code-server/releases/latest | jq -r '.tag_name' | sed 's|^v||')
echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY
echo "**** Can't retrieve external version, exiting ****"
FAILURE_REASON="Can't retrieve external version for code-server branch master"
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-code-server/actions/runs/${{ github.run_id }}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
@@ -34,8 +31,9 @@ jobs:
exit 1
fi
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "External version: \`${EXT_RELEASE}\`" >> $GITHUB_STEP_SUMMARY
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
echo "**** External version: ${EXT_RELEASE} ****"
echo "External version: ${EXT_RELEASE}" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving last pushed version ****"
image="linuxserver/code-server"
tag="latest"
token=$(curl -sX GET \
@@ -62,34 +60,37 @@ jobs:
IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}')
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
if [ -z "${IMAGE_VERSION}" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "Can't retrieve last pushed version, exiting" >> $GITHUB_STEP_SUMMARY
echo "**** Can't retrieve last pushed version, exiting ****"
FAILURE_REASON="Can't retrieve last pushed version for code-server tag latest"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1
fi
echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
echo "**** Last pushed version: ${IMAGE_VERSION} ****"
echo "Last pushed version: ${IMAGE_VERSION}" >> $GITHUB_STEP_SUMMARY
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
echo "Version \`${EXT_RELEASE}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
echo "Version ${EXT_RELEASE} already pushed, exiting" >> $GITHUB_STEP_SUMMARY
exit 0
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****"
echo "New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
exit 0
else
printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY
echo "New version \`${EXT_RELEASE}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****"
echo "New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build" >> $GITHUB_STEP_SUMMARY
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/buildWithParameters?PACKAGE_CHECK=false \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****"
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
echo "**** Jenkins job build url: ${buildurl} ****"
echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY
echo "**** Attempting to change the Jenkins job description ****"
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \

View File

@@ -15,31 +15,31 @@ jobs:
- name: External Trigger Scheduler
run: |
printf "# External trigger scheduler for docker-code-server\n\n" >> $GITHUB_STEP_SUMMARY
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
echo "**** Branches found: ****"
git for-each-ref --format='%(refname:short)' refs/remotes
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
do
if [[ "${br}" == "HEAD" ]]; then
printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
continue
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
br=$(echo "$br" | sed 's|origin/||g')
echo "**** Evaluating branch ${br} ****"
ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-code-server/${br}/jenkins-vars.yml)
ls_branch=$(echo "${ls_jenkins_vars}" | yq -r '.ls_branch')
ls_trigger=$(echo "${ls_jenkins_vars}" | yq -r '.external_type')
if [[ "${br}" == "${ls_branch}" ]] && [[ "${ls_trigger}" != "os" ]]; then
echo "Branch appears to be live and trigger is not os; checking workflow." >> $GITHUB_STEP_SUMMARY
echo "**** Branch ${br} appears to be live and trigger is not os; checking workflow. ****"
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-code-server/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then
echo "Triggering external trigger workflow for branch." >> $GITHUB_STEP_SUMMARY
echo "**** Workflow exists. Triggering external trigger workflow for branch ${br} ****."
echo "Triggering external trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY
curl -iX POST \
-H "Authorization: token ${{ secrets.CR_PAT }}" \
-H "Accept: application/vnd.github.v3+json" \
-d "{\"ref\":\"refs/heads/${br}\"}" \
https://api.github.com/repos/linuxserver/docker-code-server/actions/workflows/external_trigger.yml/dispatches
else
echo "Skipping branch due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
echo "**** Workflow doesn't exist; skipping trigger. ****"
echo "Skipping branch ${br} due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
fi
else
echo "Skipping branch due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
echo "**** ${br} is either a dev branch, or has no external version; skipping trigger. ****"
echo "Skipping branch ${br} due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
fi
done

View File

@@ -12,29 +12,29 @@ jobs:
- name: Package Trigger
if: github.ref == 'refs/heads/master'
run: |
printf "# Package trigger for docker-code-server\n\n" >> $GITHUB_STEP_SUMMARY
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_CODE_SERVER_MASTER }}" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github secret \`PAUSE_PACKAGE_TRIGGER_CODE_SERVER_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_CODE_SERVER_MASTER is set; skipping trigger. ****"
echo "Github secret \`PAUSE_PACKAGE_TRIGGER_CODE_SERVER_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> There already seems to be an active build on Jenkins; skipping package trigger" >> $GITHUB_STEP_SUMMARY
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
echo "There already seems to be an active build on Jenkins; skipping package trigger" >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Package trigger running off of master branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_CODE_SERVER_MASTER\`" >> $GITHUB_STEP_SUMMARY
echo "**** Package trigger running off of master branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_CODE_SERVER_MASTER\". ****"
echo "Package trigger running off of master branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_CODE_SERVER_MASTER\`" >> $GITHUB_STEP_SUMMARY
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****"
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
echo "**** Jenkins job build url: ${buildurl} ****"
echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY
echo "**** Attempting to change the Jenkins job description ****"
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \

View File

@@ -15,19 +15,17 @@ jobs:
- name: Package Trigger Scheduler
run: |
printf "# Package trigger scheduler for docker-code-server\n\n" >> $GITHUB_STEP_SUMMARY
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
echo "**** Branches found: ****"
git for-each-ref --format='%(refname:short)' refs/remotes
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
do
if [[ "${br}" == "HEAD" ]]; then
printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
continue
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
br=$(echo "$br" | sed 's|origin/||g')
echo "**** Evaluating branch ${br} ****"
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-code-server/${br}/jenkins-vars.yml | yq -r '.ls_branch')
if [ "${br}" == "${ls_branch}" ]; then
echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
echo "**** Branch ${br} appears to be live; checking workflow. ****"
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-code-server/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then
echo "**** Workflow exists. Triggering package trigger workflow for branch ${br}. ****"
echo "Triggering package trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY
triggered_branches="${triggered_branches}${br} "
curl -iX POST \
@@ -37,9 +35,11 @@ jobs:
https://api.github.com/repos/linuxserver/docker-code-server/actions/workflows/package_trigger.yml/dispatches
sleep 30
else
echo "**** Workflow doesn't exist; skipping trigger. ****"
echo "Skipping branch ${br} due to no package trigger workflow present." >> $GITHUB_STEP_SUMMARY
fi
else
echo "**** ${br} appears to be a dev branch; skipping trigger. ****"
echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY
fi
done

View File

@@ -5,8 +5,6 @@ on:
- '**/run'
- '**/finish'
- '**/check'
- 'root/migrations/*'
jobs:
permission_check:
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1

119
Jenkinsfile vendored
View File

@@ -17,8 +17,6 @@ pipeline {
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
DOCKERHUB_TOKEN=credentials('docker-hub-ci-pat')
QUAYIO_API_TOKEN=credentials('quayio-repo-api-token')
GIT_SIGNING_KEY=credentials('484fbca6-9a4f-455e-b9e3-97ac98785f5f')
CONTAINER_NAME = 'code-server'
BUILD_VERSION_ARG = 'CODE_RELEASE'
LS_USER = 'linuxserver'
@@ -38,23 +36,9 @@ pipeline {
CI_WEBPATH=''
}
stages {
stage("Set git config"){
steps{
sh '''#!/bin/bash
cat ${GIT_SIGNING_KEY} > /config/.ssh/id_sign
chmod 600 /config/.ssh/id_sign
ssh-keygen -y -f /config/.ssh/id_sign > /config/.ssh/id_sign.pub
echo "Using $(ssh-keygen -lf /config/.ssh/id_sign) to sign commits"
git config --global gpg.format ssh
git config --global user.signingkey /config/.ssh/id_sign
git config --global commit.gpgsign true
'''
}
}
// Setup all the basic environment variables needed for the build
stage("Set ENV Variables base"){
steps{
echo "Running on node: ${NODE_NAME}"
sh '''#! /bin/bash
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
@@ -261,7 +245,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.19 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 && \
@@ -291,7 +275,7 @@ pipeline {
# ${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}
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
docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true 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
@@ -311,7 +295,7 @@ pipeline {
echo "Jenkinsfile is up to date."
fi
echo "Starting Stage 2 - Delete old templates"
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml"
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml Dockerfile.armhf"
for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -368,7 +352,7 @@ pipeline {
fi
echo "Starting Stage 4 - External repo updates: Docs, Unraid Template and Readme Sync to Docker Hub"
mkdir -p ${TEMPDIR}/docs
git clone --depth=1 https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/docs/docker-documentation/docs/images/
cd ${TEMPDIR}/docs/docker-documentation
@@ -386,8 +370,8 @@ pipeline {
echo "Docs update not needed, skipping"
fi
mkdir -p ${TEMPDIR}/unraid
git clone --depth=1 https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
git clone --depth=1 https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
@@ -397,9 +381,7 @@ pipeline {
echo "Updating Unraid template"
cd ${TEMPDIR}/unraid/templates/
GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
if grep -wq "^${CONTAINER_NAME}$" ${TEMPDIR}/unraid/templates/unraid/ignore.list && [[ -f ${TEMPDIR}/unraid/templates/unraid/deprecated/${CONTAINER_NAME}.xml ]]; then
echo "Image is on the ignore list, and already in the deprecation folder."
elif grep -wq "^${CONTAINER_NAME}$" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, marking Unraid template as deprecated"
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add -u unraid/${CONTAINER_NAME}.xml
@@ -492,10 +474,10 @@ pipeline {
}
}
/* #######################
GitLab Mirroring and Quay.io Repo Visibility
GitLab Mirroring
####################### */
// Ping into Gitlab to mirror this repo and have a registry endpoint & mark this repo on Quay.io as public
stage("GitLab Mirror and Quay.io Visibility"){
// Ping into Gitlab to mirror this repo and have a registry endpoint
stage("GitLab Mirror"){
when {
environment name: 'EXIT_STATUS', value: ''
}
@@ -511,8 +493,6 @@ pipeline {
"visibility":"public"}' '''
sh '''curl -H "Private-Token: ${GITLAB_TOKEN}" -X PUT "https://gitlab.com/api/v4/projects/Linuxserver.io%2F${LS_REPO}" \
-d "mirror=true&import_url=https://github.com/linuxserver/${LS_REPO}.git" '''
sh '''curl -H "Content-Type: application/json" -H "Authorization: Bearer ${QUAYIO_API_TOKEN}" -X POST "https://quay.io/api/v1/repository${QUAYIMAGE/quay.io/}/changevisibility" \
-d '{"visibility":"public"}' ||: '''
}
}
/* ###############
@@ -543,7 +523,6 @@ pipeline {
--label \"org.opencontainers.image.title=Code-server\" \
--label \"org.opencontainers.image.description=[Code-server](https://coder.com) is VS Code running on a remote server, accessible through the browser. - Code on your Chromebook, tablet, and laptop with a consistent dev environment. - If you have a Windows or Mac workstation, more easily develop for Linux. - Take advantage of large cloud servers to speed up tests, compilations, downloads, and more. - Preserve battery life when you're on the go. - All intensive computation runs on your server. - You're no longer running excess instances of Chrome.\" \
--no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
@@ -575,7 +554,6 @@ pipeline {
--label \"org.opencontainers.image.title=Code-server\" \
--label \"org.opencontainers.image.description=[Code-server](https://coder.com) is VS Code running on a remote server, accessible through the browser. - Code on your Chromebook, tablet, and laptop with a consistent dev environment. - If you have a Windows or Mac workstation, more easily develop for Linux. - Take advantage of large cloud servers to speed up tests, compilations, downloads, and more. - Preserve battery life when you're on the go. - All intensive computation runs on your server. - You're no longer running excess instances of Chrome.\" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
@@ -604,10 +582,9 @@ pipeline {
--label \"org.opencontainers.image.title=Code-server\" \
--label \"org.opencontainers.image.description=[Code-server](https://coder.com) is VS Code running on a remote server, accessible through the browser. - Code on your Chromebook, tablet, and laptop with a consistent dev environment. - If you have a Windows or Mac workstation, more easily develop for Linux. - Take advantage of large cloud servers to speed up tests, compilations, downloads, and more. - Preserve battery life when you're on the go. - All intensive computation runs on your server. - You're no longer running excess instances of Chrome.\" \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
retry_backoff(5,5) {
retry(5) {
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
}
sh '''#! /bin/bash
@@ -631,7 +608,7 @@ pipeline {
sh '''#! /bin/bash
set -e
TEMPDIR=$(mktemp -d)
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" != "true" ]; then
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
else
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
@@ -721,14 +698,14 @@ pipeline {
set -e
docker pull ghcr.io/linuxserver/ci:latest
if [ "${MULTIARCH}" == "true" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi
docker run --rm \
--shm-size=1gb \
-v /var/run/docker.sock:/var/run/docker.sock \
-e IMAGE=\"${IMAGE}\" \
-e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
-e DELAY_START=\"${CI_DELAY}\" \
-e TAGS=\"${CI_TAGS}\" \
-e META_TAG=\"${META_TAG}\" \
-e PORT=\"${CI_PORT}\" \
@@ -763,7 +740,7 @@ pipeline {
passwordVariable: 'QUAYPASS'
]
]) {
retry_backoff(5,5) {
retry(5) {
sh '''#! /bin/bash
set -e
echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
@@ -781,7 +758,7 @@ pipeline {
docker push ${PUSHIMAGE}:${META_TAG}
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker push ${PUSHIMAGE}:${SEMVER}
docker push ${PUSHIMAGE}:${SEMVER}
fi
done
'''
@@ -804,7 +781,7 @@ pipeline {
passwordVariable: 'QUAYPASS'
]
]) {
retry_backoff(5,5) {
retry(5) {
sh '''#! /bin/bash
set -e
echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
@@ -812,7 +789,7 @@ 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 [ "${CI}" == "false" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
@@ -836,13 +813,35 @@ pipeline {
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
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 manifest push --purge ${MANIFESTIMAGE}:latest || :
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
if [ -n "${SEMVER}" ]; then
docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
fi
token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest")
if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
fi
docker manifest push --purge ${MANIFESTIMAGE}:latest
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
fi
done
'''
@@ -867,7 +866,7 @@ pipeline {
"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}'"}}' '''
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag"
sh '''#! /bin/bash
echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
@@ -999,13 +998,6 @@ EOF
###################### */
post {
always {
sh '''#!/bin/bash
rm -rf /config/.ssh/id_sign
rm -rf /config/.ssh/id_sign.pub
git config --global --unset gpg.format
git config --global --unset user.signingkey
git config --global --unset commit.gpgsign
'''
script{
if (env.EXIT_STATUS == "ABORTED"){
sh 'echo "build aborted"'
@@ -1035,20 +1027,3 @@ EOF
}
}
}
def retry_backoff(int max_attempts, int power_base, Closure c) {
int n = 0
while (n < max_attempts) {
try {
c()
return
} catch (err) {
if ((n + 1) >= max_attempts) {
throw err
}
sleep(power_base ** n)
n++
}
}
return
}

View File

@@ -28,7 +28,7 @@ Find us at:
# [linuxserver/code-server](https://github.com/linuxserver/docker-code-server)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fcode-server?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fcode-server?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fcode-server)
[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-code-server.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-code-server)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-code-server.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-code-server/releases)
[![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-code-server/packages)
@@ -306,6 +306,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **21.04.23:** - Let server listen on both ipv4 and ipv6.
* **01.07.23:** - Deprecate armhf. As announced [here](https://www.linuxserver.io/blog/a-farewell-to-arm-hf)
* **05.10.22:** - Install recommended deps to maintain parity with the older images.
* **29.09.22:** - Rebase to jammy, switch to s6v3. Fix chown logic to skip `/config/workspace` contents.

View File

@@ -11,28 +11,26 @@ NAME VERSION
@phc/format 1.0.0 npm
@tootallnate/once 3.0.0 npm
@tootallnate/quickjs-emscripten 0.23.0 npm
@vscode/deviceid 0.1.1 npm
@vscode/iconv-lite-umd 0.7.0 npm
@vscode/proxy-agent 0.22.0 npm
@vscode/proxy-agent 0.19.1 npm
@vscode/ripgrep 1.15.9 npm
@vscode/spdlog 0.15.0 npm
@vscode/vscode-languagedetection 1.0.21 npm
@vscode/windows-process-tree 0.6.0 npm
@vscode/windows-registry 1.1.0 npm
@xterm/addon-clipboard 0.2.0-beta.34 npm
@xterm/addon-image 0.9.0-beta.51 npm
@xterm/addon-search 0.16.0-beta.51 npm
@xterm/addon-serialize 0.14.0-beta.51 npm
@xterm/addon-unicode11 0.9.0-beta.51 npm
@xterm/addon-webgl 0.19.0-beta.51 npm
@xterm/headless 5.6.0-beta.51 npm
@xterm/xterm 5.6.0-beta.51 npm
@xterm/addon-canvas 0.7.0-beta.12 npm
@xterm/addon-image 0.8.0-beta.12 npm
@xterm/addon-search 0.15.0-beta.12 npm
@xterm/addon-serialize 0.13.0-beta.12 npm
@xterm/addon-unicode11 0.8.0-beta.12 npm
@xterm/addon-webgl 0.18.0-beta.12 npm
@xterm/headless 5.5.0-beta.12 npm
@xterm/xterm 5.5.0-beta.12 npm
abbrev 1.1.1 npm
accepts 1.3.8 npm
adduser 3.118ubuntu5 deb
agent-base 6.0.2 npm
agent-base 7.1.0 npm (+1 duplicate)
agent-base 7.1.1 npm
ansi-regex 5.0.1 npm
aproba 2.0.0 npm
apt 2.4.12 deb
@@ -40,21 +38,22 @@ apt-utils 2.4.12
are-we-there-yet 2.0.0 npm
argon2 0.31.1 npm
argparse 2.0.1 npm
array-flatten 3.0.0 npm
array-flatten 2.1.1 npm
ast-types 0.13.4 npm
balanced-match 1.0.2 npm
base-files 12ubuntu4.6 deb
base-passwd 3.5.52build1 deb
base64-js 1.5.1 npm
bash 5.1-6ubuntu1.1 deb
bash 5.1.16 binary
basic-ftp 5.0.3 npm
bat 1.0.0 npm
beep-boop 1.2.3 npm
bindings 1.5.0 npm
bl 4.1.0 npm
body-parser 2.0.0-beta.2 npm
body-parser 1.19.0 npm
brace-expansion 1.1.11 npm
braces 3.0.3 npm
braces 3.0.2 npm
bsdutils 1:2.37.2-4ubuntu3.4 deb
buffer 5.7.1 npm
buffer-alloc 1.2.0 npm
@@ -63,16 +62,13 @@ buffer-crc32 0.2.13
buffer-fill 1.0.0 npm
builtin-notebook-renderers 1.0.0 npm
bytes 3.0.0 npm
bytes 3.1.2 npm
bytes 3.1.0 npm
ca-certificates 20230311ubuntu0.22.04.1 deb
call-bind 1.0.2 npm
call-bind 1.0.7 npm
catatonit 0.1.7-1 deb
charenc 0.0.2 npm
chownr 1.1.4 npm
chownr 2.0.0 npm
clojure 1.0.0 npm
code-server 4.92.2 npm
code-server 4.23.1 npm
coffeescript 1.0.0 npm
color-support 1.1.3 npm
compressible 2.0.18 npm
@@ -80,11 +76,10 @@ compression 1.7.4
concat-map 0.0.1 npm
configuration-editing 1.0.0 npm
console-control-strings 1.1.0 npm
content-disposition 0.5.4 npm
content-disposition 0.5.3 npm
content-type 1.0.5 npm
cookie 0.4.0 npm
cookie 0.4.0 npm (+1 duplicate)
cookie 0.4.1 npm
cookie 0.6.0 npm
cookie-parser 1.4.6 npm
cookie-signature 1.0.6 npm
coreutils 8.32-4.1ubuntu1.2 deb
@@ -94,24 +89,23 @@ crypt 0.0.2
csharp 1.0.0 npm
css 1.0.0 npm
css-language-features 1.0.0 npm
curl 7.81.0-1ubuntu1.17 deb
curl 7.81.0-1ubuntu1.16 deb
dart 1.0.0 npm
dash 0.5.11+git20210903+057cd650a4ed-3build1 deb
data-uri-to-buffer 5.0.1 npm
debconf 1.5.79ubuntu1 deb
debianutils 5.5-1ubuntu2 deb
debug 2.6.9 npm (+1 duplicate)
debug 3.1.0 npm (+2 duplicates)
debug 2.6.9 npm (+3 duplicates)
debug 3.1.0 npm (+1 duplicate)
debug 4.3.4 npm (+1 duplicate)
debug-auto-launch 1.0.0 npm
debug-server-ready 1.0.0 npm
decompress-response 6.0.0 npm
deep-extend 0.6.0 npm
define-data-property 1.1.4 npm
degenerator 5.0.1 npm
delegates 1.0.0 npm
depd 2.0.0 npm
destroy 1.2.0 npm
depd 1.1.2 npm
destroy 1.0.4 npm
detect-libc 2.0.1 npm
detect-libc 2.0.2 npm
diff 1.0.0 npm
@@ -126,8 +120,6 @@ emoji-regex 8.0.0
encodeurl 1.0.2 npm
end-of-stream 1.4.4 npm
env-paths 2.2.1 npm
es-define-property 1.0.0 npm
es-errors 1.3.0 npm
es6-promisify 7.0.0 npm
escape-html 1.0.3 npm
escodegen 2.1.0 npm
@@ -137,33 +129,28 @@ esutils 2.0.3
etag 1.8.1 npm
eventemitter3 4.0.7 npm
expand-template 2.0.3 npm
express 5.0.0-beta.3 npm
express 5.0.0-alpha.8 npm
extension-editing 1.0.0 npm
fd-slicer 1.1.0 npm
file-uri-to-path 1.0.0 npm
fill-range 7.1.1 npm
finalhandler 1.2.0 npm
fill-range 7.0.1 npm
finalhandler 1.1.2 npm
findutils 4.8.0-1ubuntu3 deb
follow-redirects 1.15.6 npm
forwarded 0.2.0 npm
fresh 0.5.2 npm
fs-constants 1.0.0 npm
fs-extra 11.2.0 npm
fs-extra 8.1.0 npm
fs-minipass 2.1.0 npm
fs.realpath 1.0.0 npm
fsharp 1.0.0 npm
function-bind 1.1.1 npm (+2 duplicates)
function-bind 1.1.2 npm
gauge 3.0.2 npm
gcc-12-base 12.3.0-1ubuntu1~22.04 deb
get-intrinsic 1.2.1 npm
get-intrinsic 1.2.4 npm (+2 duplicates)
get-uri 6.0.1 npm
git 1.0.0 npm
git 1:2.34.1-1ubuntu1.11 deb
git 1:2.34.1-1ubuntu1.10 deb
git-base 1.0.0 npm
git-man 1:2.34.1-1ubuntu1.11 deb
git-man 1:2.34.1-1ubuntu1.10 deb
github 0.0.1 npm
github-authentication 0.0.2 npm
github-from-package 0.0.0 npm
@@ -172,7 +159,6 @@ gnupg 2.2.27-3ubuntu2.1
gnupg-l10n 2.2.27-3ubuntu2.1 deb
gnupg-utils 2.2.27-3ubuntu2.1 deb
go 1.0.0 npm
gopd 1.0.1 npm
gpg 2.2.27-3ubuntu2.1 deb
gpg-agent 2.2.27-3ubuntu2.1 deb
gpg-wks-client 2.2.27-3ubuntu2.1 deb
@@ -187,17 +173,13 @@ grunt 1.0.0
gulp 1.0.0 npm
gzip 1.10-4ubuntu4.1 deb
handlebars 1.0.0 npm
has 1.0.3 npm
has-property-descriptors 1.0.2 npm
has-proto 1.0.1 npm
has-symbols 1.0.3 npm
has-unicode 2.0.1 npm
hasown 2.0.0 npm
hlsl 1.0.0 npm
hostname 3.23ubuntu2 deb
html 1.0.0 npm
html-language-features 1.0.0 npm
http-errors 2.0.0 npm
http-errors 1.7.2 npm
http-errors 1.7.3 npm
http-proxy 1.18.1 npm
http-proxy-agent 7.0.0 npm
http-proxy-agent 7.0.2 npm
@@ -205,17 +187,17 @@ httpolyglot 0.1.2
https-proxy-agent 5.0.1 npm
https-proxy-agent 7.0.2 npm
https-proxy-agent 7.0.4 npm
i18next 23.11.3 npm
iconv-lite 0.5.2 npm
i18next 23.10.1 npm
iconv-lite 0.4.24 npm
ieee754 1.2.1 npm
inflight 1.0.6 npm
inherits 2.0.3 npm
inherits 2.0.4 npm (+1 duplicate)
ini 1.0.0 npm
ini 1.3.8 npm
init-system-helpers 1.62 deb
ip 1.1.9 npm
ip 2.0.1 npm
ip-address 9.0.5 npm
ip 2.0.1 npm (+1 duplicate)
ipaddr.js 1.9.1 npm
ipynb 1.0.0 npm
is-buffer 1.1.6 npm
@@ -223,28 +205,24 @@ is-extglob 2.1.1
is-fullwidth-code-point 3.0.0 npm
is-glob 4.0.3 npm
is-number 7.0.0 npm
is-promise 4.0.0 npm
isexe 2.0.0 npm
jake 1.0.0 npm
java 1.0.0 npm
javascript 1.0.0 npm
jq 1.6-2.1ubuntu3 deb
js-base64 3.7.7 npm
js-debug 1.92.0 npm
js-debug-companion 1.1.3 npm
js-debug 1.88.0 npm
js-debug-companion 1.1.2 npm
js-yaml 4.1.0 npm
jsbn 1.1.0 npm
jschardet 3.1.3 npm
jschardet 3.0.0 npm
json 1.0.0 npm
json-language-features 1.0.0 npm
jsonfile 4.0.0 npm
jsonfile 6.1.0 npm
julia 1.0.0 npm
just-performance 4.3.0 npm
kerberos 2.1.1-alpha.0 npm
kerberos 2.0.1 npm
latex 1.0.0 npm
less 1.0.0 npm
less 590-1ubuntu0.22.04.3 deb
less 590-1ubuntu0.22.04.2 deb
libacl1 2.3.1-1 deb
libapt-pkg6.0 2.4.12 deb
libassuan0 2.5.5-1build1 deb
@@ -256,15 +234,15 @@ libblkid1 2.37.2-4ubuntu3.4
libbrotli1 1.0.9-2build6 deb
libbsd0 0.11.5-1 deb
libbz2-1.0 1.0.8-5build1 deb
libc-bin 2.35-0ubuntu3.8 deb
libc6 2.35-0ubuntu3.8 deb
libc-bin 2.35-0ubuntu3.6 deb
libc6 2.35-0ubuntu3.6 deb
libcap-ng0 0.7.9-2.2build3 deb
libcap2 1:2.44-1ubuntu0.22.04.1 deb
libcbor0.8 0.8.0-2ubuntu1 deb
libcom-err2 1.46.5-2ubuntu1.1 deb
libcrypt1 1:4.4.27-1 deb
libcurl3-gnutls 7.81.0-1ubuntu1.17 deb
libcurl4 7.81.0-1ubuntu1.17 deb
libcurl3-gnutls 7.81.0-1ubuntu1.16 deb
libcurl4 7.81.0-1ubuntu1.16 deb
libdb5.3 5.3.28+dfsg1-0.8ubuntu3 deb
libdebconfclient0 0.261ubuntu1 deb
libedit2 3.1-20210910-1build1 deb
@@ -280,17 +258,17 @@ libgdbm6 1.23-1
libgmp10 2:6.2.1+dfsg-3ubuntu1 deb
libgnutls30 3.7.3-4ubuntu1.5 deb
libgpg-error0 1.43-3 deb
libgssapi-krb5-2 1.19.2-2ubuntu0.4 deb
libgssapi-krb5-2 1.19.2-2ubuntu0.3 deb
libhogweed6 3.7.3-1build2 deb
libidn2-0 2.3.2-2build1 deb
libjq1 1.6-2.1ubuntu3 deb
libk5crypto3 1.19.2-2ubuntu0.4 deb
libk5crypto3 1.19.2-2ubuntu0.3 deb
libkeyutils1 1.6.1-2ubuntu3 deb
libkrb5-3 1.19.2-2ubuntu0.4 deb
libkrb5support0 1.19.2-2ubuntu0.4 deb
libkrb5-3 1.19.2-2ubuntu0.3 deb
libkrb5support0 1.19.2-2ubuntu0.3 deb
libksba8 1.6.0-2ubuntu0.2 deb
libldap-2.5-0 2.5.18+dfsg-0ubuntu0.22.04.2 deb
libldap-common 2.5.18+dfsg-0ubuntu0.22.04.2 deb
libldap-2.5-0 2.5.17+dfsg-0ubuntu0.22.04.1 deb
libldap-common 2.5.17+dfsg-0ubuntu0.22.04.1 deb
liblz4-1 1.9.3-2build2 deb
liblzma5 5.2.5-2ubuntu1 deb
libmd0 1.0.4-1build1 deb
@@ -298,7 +276,7 @@ libmount1 2.37.2-4ubuntu3.4
libncurses6 6.3-2ubuntu0.1 deb
libncursesw6 6.3-2ubuntu0.1 deb
libnettle8 3.7.3-1build2 deb
libnghttp2-14 1.43.0-1ubuntu0.2 deb
libnghttp2-14 1.43.0-1ubuntu0.1 deb
libnpth0 1.6-3build2 deb
libnsl2 1.3.0-2build2 deb
libonig5 6.9.7.1-2build1 deb
@@ -326,7 +304,7 @@ libsmartcols1 2.37.2-4ubuntu3.4
libsqlite3-0 3.37.2-2ubuntu0.3 deb
libss2 1.46.5-2ubuntu1.1 deb
libssh-4 0.9.6-2ubuntu0.22.04.3 deb
libssl3 3.0.2-0ubuntu1.17 deb
libssl3 3.0.2-0ubuntu1.15 deb
libstdc++6 12.3.0-1ubuntu1~22.04 deb
libsystemd0 249.11-0ubuntu3.12 deb
libtasn1-6 4.18.0-4build1 deb
@@ -346,7 +324,7 @@ libxmuu1 2:1.1.3-3
libxxhash0 0.8.1-1 deb
libzstd1 1.4.8+dfsg-3build1 deb
limiter 2.1.0 npm
locales 2.35-0ubuntu3.8 deb
locales 2.35-0ubuntu3.6 deb
log 1.0.0 npm
login 1:4.8.1-2ubuntu2.2 deb
logsave 1.46.5-2ubuntu1.1 deb
@@ -368,6 +346,7 @@ merge-descriptors 1.0.1
methods 1.1.2 npm
micromatch 4.0.5 npm
microsoft-authentication 0.0.1 npm
mime 1.6.0 npm
mime-db 1.52.0 npm
mime-types 2.1.35 npm
mimic-response 3.1.0 npm
@@ -380,8 +359,8 @@ mkdirp 1.0.4
mkdirp-classic 0.5.3 npm
mount 2.37.2-4ubuntu3.4 deb
ms 2.0.0 npm (+1 duplicate)
ms 2.1.1 npm
ms 2.1.2 npm (+1 duplicate)
ms 2.1.3 npm
nano 6.2-1 deb
napi-build-utils 1.0.2 npm
native-watchdog 1.4.2 npm
@@ -393,28 +372,26 @@ netbase 6.3
netcat 1.218-4ubuntu1 deb
netcat-openbsd 1.218-4ubuntu1 deb
netmask 2.0.2 npm
node 20.11.1 binary
node 18.18.2 binary
node-abi 3.8.0 npm
node-addon-api 3.2.1 npm
node-addon-api 6.1.0 npm
node-addon-api 4.3.0 npm
node-addon-api 7.0.0 npm
node-addon-api 7.1.0 npm
node-fetch 2.7.0 npm
node-gyp-build 4.8.1 npm
node-gyp-build 4.3.0 npm
node-pty 1.1.0-beta11 npm
nopt 5.0.0 npm
npm 1.0.1 npm
npmlog 5.0.1 npm
nw-pre-gyp-module-test 0.0.1 npm
object-assign 4.1.1 npm
object-inspect 1.12.3 npm
object-inspect 1.13.1 npm
objective-c 1.0.0 npm
on-finished 2.4.1 npm
on-finished 2.3.0 npm
on-headers 1.0.2 npm
once 1.4.0 npm (+1 duplicate)
openssh-client 1:8.9p1-3ubuntu0.10 deb
openssl 3.0.2-0ubuntu1.17 deb
openssh-client 1:8.9p1-3ubuntu0.7 deb
openssl 3.0.2-0ubuntu1.15 deb
os-tmpdir 1.0.2 npm
pac-proxy-agent 7.0.1 npm
pac-resolver 7.0.0 npm
@@ -422,7 +399,7 @@ parseurl 1.3.3
passwd 1:4.8.1-2ubuntu2.2 deb
patch 2.7.6-7build2 deb
path-is-absolute 1.0.1 npm
path-to-regexp 3.2.0 npm
path-to-regexp 0.1.7 npm
pem 1.14.8 npm
pend 1.2.0 npm
perl 1.0.0 npm
@@ -434,7 +411,7 @@ php-language-features 1.0.0
picomatch 2.3.1 npm
pinentry-curses 1.1.1-1build2 deb
powershell 1.0.0 npm
prebuild-install 7.1.2 npm
prebuild-install 7.1.1 npm
procps 2:3.3.17-6ubuntu2.1 deb
proxy-addr 2.0.7 npm
proxy-agent 6.4.0 npm
@@ -443,11 +420,10 @@ publicsuffix 20211207.1025-1
pug 1.0.0 npm
pump 3.0.0 npm
python 1.0.0 npm
qs 6.11.0 npm (+1 duplicate)
qs 6.12.1 npm
qs 6.9.7 npm
r 1.0.0 npm
range-parser 1.2.1 npm
raw-body 3.0.0-beta.1 npm
raw-body 2.4.0 npm
razor 1.0.0 npm
rc 1.2.8 npm
readable-stream 3.6.0 npm
@@ -459,10 +435,10 @@ requires-port 1.0.0
restructuredtext 1.0.0 npm
rimraf 3.0.2 npm
rotating-file-stream 3.2.1 npm
router 2.0.0-beta.2 npm
router 2.0.0-alpha.1 npm
ruby 1.0.0 npm
rust 1.0.0 npm
safe-buffer 5.1.2 npm
safe-buffer 5.1.2 npm (+2 duplicates)
safe-buffer 5.2.1 npm (+1 duplicate)
safe-compare 1.1.4 npm
safer-buffer 2.1.2 npm
@@ -470,31 +446,26 @@ scss 1.0.0
search-result 1.0.0 npm
sed 4.8-1ubuntu2 deb
semver 6.3.1 npm
semver 7.5.4 npm
semver 7.6.0 npm
send 1.0.0-beta.2 npm
semver 7.5.4 npm (+1 duplicate)
send 0.17.1 npm
sensible-utils 0.0.17 deb
serve-static 2.0.0-beta.2 npm
serve-static 1.14.1 npm
set-blocking 2.0.0 npm
set-function-length 1.2.2 npm
setprototypeof 1.2.0 npm
setprototypeof 1.1.0 npm
setprototypeof 1.1.1 npm
shaderlab 1.0.0 npm
shellscript 1.0.0 npm
side-channel 1.0.4 npm
side-channel 1.0.6 npm
signal-exit 3.0.7 npm
simple-browser 1.0.0 npm
simple-concat 1.0.1 npm
simple-get 4.0.1 npm
smart-buffer 4.2.0 npm (+1 duplicate)
socks 2.7.1 npm
socks 2.8.3 npm
socks 2.7.1 npm (+1 duplicate)
socks-proxy-agent 8.0.1 npm
socks-proxy-agent 8.0.2 npm
socks-proxy-agent 8.0.4 npm
source-map 0.6.1 npm
sprintf-js 1.1.3 npm
sql 1.0.0 npm
statuses 2.0.1 npm
statuses 1.5.0 npm
string-width 4.2.3 npm
string_decoder 1.3.0 npm (+1 duplicate)
strip-ansi 6.0.1 npm
@@ -503,10 +474,10 @@ sudo 1.9.9-1ubuntu2.4
swift 1.0.0 npm
sysvinit-utils 3.01-1ubuntu1 deb
tar 1.34+dfsg-1ubuntu0.1.22.04.2 deb
tar 6.2.1 npm
tar 6.2.0 npm
tar-fs 2.1.1 npm
tar-stream 2.2.0 npm
tas-client-umd 0.2.0 npm
tas-client-umd 0.1.8 npm
theme-abyss 1.0.0 npm
theme-defaults 1.0.0 npm
theme-kimbie-dark 1.0.0 npm
@@ -518,35 +489,34 @@ theme-solarized-dark 1.0.0
theme-solarized-light 1.0.0 npm
theme-tomorrow-night-blue 1.0.0 npm
to-regex-range 5.0.1 npm
toidentifier 1.0.1 npm
toidentifier 1.0.0 npm
tr46 0.0.3 npm
tslib 2.6.2 npm
tunnel-agent 0.6.0 npm
tunnel-forwarding 1.0.0 npm
type-is 1.6.18 npm
typescript 1.0.0 npm
typescript 5.5.4 npm
typescript 5.4.5 npm
typescript-language-features 1.0.0 npm
tzdata 2024a-0ubuntu0.22.04.1 deb
tzdata 2024a-0ubuntu0.22.04 deb
ubuntu-keyring 2021.03.26 deb
universalify 0.1.2 npm
universalify 2.0.1 npm
unpipe 1.0.0 npm
usrmerge 25ubuntu2 deb
util-deprecate 1.0.2 npm (+1 duplicate)
util-linux 2.37.2-4ubuntu3.4 deb
utils-merge 1.0.1 npm
uuid 9.0.1 npm
vary 1.1.2 npm
vb 1.0.0 npm
vscode-css-languageserver 1.0.0 npm
vscode-extensions 0.0.1 npm
vscode-html-languageserver 1.0.0 npm
vscode-js-profile-table 1.0.9 npm
vscode-js-profile-table 1.0.8 npm
vscode-json-languageserver 1.3.4 npm
vscode-markdown-languageserver 0.4.0 npm
vscode-oniguruma 1.7.0 npm
vscode-regexpp 3.1.0 npm
vscode-reh 1.92.2 npm
vscode-reh 1.88.1 npm
vscode-textmate 9.0.0 npm
vscode-theme-seti 1.0.0 npm
webidl-conversions 3.0.1 npm
@@ -554,7 +524,7 @@ whatwg-url 5.0.0
which 2.0.2 npm
wide-align 1.1.5 npm
wrappy 1.0.2 npm (+1 duplicate)
ws 8.17.1 npm
ws 8.14.2 npm
xauth 1:1.1-1build2 deb
xdg-basedir 4.0.0 npm
xml 1.0.0 npm

View File

@@ -54,6 +54,7 @@ app_setup_block: |
How to create the [hashed password](https://github.com/cdr/code-server/blob/master/docs/FAQ.md#can-i-store-my-password-hashed).
# changelog
changelogs:
- {date: "21.04.23:", desc: "Let server listen on both ipv4 and ipv6."}
- {date: "01.07.23:", desc: "Deprecate armhf. As announced [here](https://www.linuxserver.io/blog/a-farewell-to-arm-hf)"}
- {date: "05.10.22:", desc: "Install recommended deps to maintain parity with the older images."}
- {date: "29.09.22:", desc: "Rebase to jammy, switch to s6v3. Fix chown logic to skip `/config/workspace` contents."}

View File

@@ -17,7 +17,7 @@ exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z 127.0.0.1 8443" \
s6-setuidgid abc \
/app/code-server/bin/code-server \
--bind-addr 0.0.0.0:8443 \
--bind-addr "[::]:8443" \
--user-data-dir /config/data \
--extensions-dir /config/extensions \
--disable-telemetry \