mirror of
https://github.com/linuxserver/docker-code-server
synced 2025-06-26 18:27:40 +00:00
Compare commits
20 Commits
v3.12.0-ls
...
4.0.2-ls11
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e4e82382a0 | ||
|
|
e9822d8efc | ||
|
|
b087315336 | ||
|
|
29c861029a | ||
|
|
a1fa7f021e | ||
|
|
16909c6274 | ||
|
|
f381942942 | ||
|
|
b419ebcce8 | ||
|
|
5724f5ad54 | ||
|
|
e522af0d30 | ||
|
|
0a12acb21e | ||
|
|
237f55187a | ||
|
|
7163312453 | ||
|
|
bc847738ca | ||
|
|
6e319e7d5d | ||
|
|
e9fe1226be | ||
|
|
7f87bd95fb | ||
|
|
eca17040a8 | ||
|
|
6a7313bb87 | ||
|
|
42094309d9 |
2
.github/workflows/external_trigger.yml
vendored
2
.github/workflows/external_trigger.yml
vendored
@@ -18,7 +18,7 @@ jobs:
|
||||
fi
|
||||
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_CODE_SERVER_MASTER\". ****"
|
||||
echo "**** Retrieving external version ****"
|
||||
EXT_RELEASE=$(curl -sX GET https://registry.yarnpkg.com/code-server | jq -r '."dist-tags".latest' | sed 's|^|v|')
|
||||
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||')
|
||||
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
|
||||
echo "**** Can't retrieve external version, exiting ****"
|
||||
FAILURE_REASON="Can't retrieve external version for code-server branch master"
|
||||
|
||||
44
Dockerfile
44
Dockerfile
@@ -12,55 +12,49 @@ ENV HOME="/config"
|
||||
|
||||
RUN \
|
||||
echo "**** install node repo ****" && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
gnupg && \
|
||||
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
|
||||
echo 'deb https://deb.nodesource.com/node_14.x focal main' \
|
||||
> /etc/apt/sources.list.d/nodesource.list && \
|
||||
curl -s https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
|
||||
echo 'deb https://dl.yarnpkg.com/debian/ stable main' \
|
||||
> /etc/apt/sources.list.d/yarn.list && \
|
||||
echo "**** install build dependencies ****" && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
build-essential \
|
||||
libx11-dev \
|
||||
libxkbfile-dev \
|
||||
pkg-config \
|
||||
python3 && \
|
||||
nodejs && \
|
||||
echo "**** install runtime dependencies ****" && \
|
||||
apt-get install -y \
|
||||
git \
|
||||
jq \
|
||||
libatomic1 \
|
||||
nano \
|
||||
net-tools \
|
||||
nodejs \
|
||||
sudo \
|
||||
yarn && \
|
||||
sudo && \
|
||||
echo "**** install code-server ****" && \
|
||||
if [ -z ${CODE_RELEASE+x} ]; then \
|
||||
CODE_RELEASE=$(curl -sX GET https://registry.yarnpkg.com/code-server \
|
||||
| jq -r '."dist-tags".latest' | sed 's|^|v|'); \
|
||||
CODE_RELEASE=$(curl -sX GET https://api.github.com/repos/coder/code-server/releases/latest \
|
||||
| awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^v||'); \
|
||||
fi && \
|
||||
mkdir -p /app/code-server && \
|
||||
curl -o \
|
||||
/tmp/code-server.tar.gz -L \
|
||||
"https://github.com/coder/code-server/releases/download/v${CODE_RELEASE}/code-server-${CODE_RELEASE}-linux-amd64.tar.gz" && \
|
||||
tar xf /tmp/code-server.tar.gz -C \
|
||||
/app/code-server --strip-components=1 && \
|
||||
echo "**** patch 4.0.2 ****" && \
|
||||
if [ "${CODE_RELEASE}" = "4.0.2" ] && [ "$(uname -m)" != "x86_64" ]; then \
|
||||
cd /app/code-server && \
|
||||
npm i --production @node-rs/argon2; \
|
||||
fi && \
|
||||
CODE_VERSION=$(echo "$CODE_RELEASE" | awk '{print substr($1,2); }') && \
|
||||
npm config set python python3 && \
|
||||
yarn config set network-timeout 600000 -g && \
|
||||
yarn --production --verbose --frozen-lockfile global add code-server@"$CODE_VERSION" && \
|
||||
yarn cache clean && \
|
||||
echo "**** clean up ****" && \
|
||||
apt-get purge --auto-remove -y \
|
||||
build-essential \
|
||||
libx11-dev \
|
||||
libxkbfile-dev \
|
||||
libsecret-1-dev \
|
||||
pkg-config && \
|
||||
nodejs && \
|
||||
apt-get clean && \
|
||||
rm -rf \
|
||||
/config/* \
|
||||
/tmp/* \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/tmp/*
|
||||
/var/tmp/* \
|
||||
/etc/apt/sources.list.d/nodesource.list
|
||||
|
||||
# add local files
|
||||
COPY /root /
|
||||
|
||||
@@ -12,55 +12,49 @@ ENV HOME="/config"
|
||||
|
||||
RUN \
|
||||
echo "**** install node repo ****" && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
gnupg && \
|
||||
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
|
||||
echo 'deb https://deb.nodesource.com/node_14.x focal main' \
|
||||
> /etc/apt/sources.list.d/nodesource.list && \
|
||||
curl -s https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
|
||||
echo 'deb https://dl.yarnpkg.com/debian/ stable main' \
|
||||
> /etc/apt/sources.list.d/yarn.list && \
|
||||
echo "**** install build dependencies ****" && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
build-essential \
|
||||
libx11-dev \
|
||||
libxkbfile-dev \
|
||||
pkg-config \
|
||||
python3 && \
|
||||
nodejs && \
|
||||
echo "**** install runtime dependencies ****" && \
|
||||
apt-get install -y \
|
||||
git \
|
||||
jq \
|
||||
libatomic1 \
|
||||
nano \
|
||||
net-tools \
|
||||
nodejs \
|
||||
sudo \
|
||||
yarn && \
|
||||
sudo && \
|
||||
echo "**** install code-server ****" && \
|
||||
if [ -z ${CODE_RELEASE+x} ]; then \
|
||||
CODE_RELEASE=$(curl -sX GET https://registry.yarnpkg.com/code-server \
|
||||
| jq -r '."dist-tags".latest' | sed 's|^|v|'); \
|
||||
CODE_RELEASE=$(curl -sX GET https://api.github.com/repos/coder/code-server/releases/latest \
|
||||
| awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^v||'); \
|
||||
fi && \
|
||||
mkdir -p /app/code-server && \
|
||||
curl -o \
|
||||
/tmp/code-server.tar.gz -L \
|
||||
"https://github.com/coder/code-server/releases/download/v${CODE_RELEASE}/code-server-${CODE_RELEASE}-linux-arm64.tar.gz" && \
|
||||
tar xf /tmp/code-server.tar.gz -C \
|
||||
/app/code-server --strip-components=1 && \
|
||||
echo "**** patch 4.0.2 ****" && \
|
||||
if [ "${CODE_RELEASE}" = "4.0.2" ] && [ "$(uname -m)" != "x86_64" ]; then \
|
||||
cd /app/code-server && \
|
||||
npm i --production @node-rs/argon2; \
|
||||
fi && \
|
||||
CODE_VERSION=$(echo "$CODE_RELEASE" | awk '{print substr($1,2); }') && \
|
||||
npm config set python python3 && \
|
||||
yarn config set network-timeout 600000 -g && \
|
||||
yarn --production --verbose --frozen-lockfile global add code-server@"$CODE_VERSION" && \
|
||||
yarn cache clean && \
|
||||
echo "**** clean up ****" && \
|
||||
apt-get purge --auto-remove -y \
|
||||
build-essential \
|
||||
libx11-dev \
|
||||
libxkbfile-dev \
|
||||
libsecret-1-dev \
|
||||
pkg-config && \
|
||||
nodejs && \
|
||||
apt-get clean && \
|
||||
rm -rf \
|
||||
/config/* \
|
||||
/tmp/* \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/tmp/*
|
||||
/var/tmp/* \
|
||||
/etc/apt/sources.list.d/nodesource.list
|
||||
|
||||
# add local files
|
||||
COPY /root /
|
||||
|
||||
@@ -12,55 +12,49 @@ ENV HOME="/config"
|
||||
|
||||
RUN \
|
||||
echo "**** install node repo ****" && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
gnupg && \
|
||||
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
|
||||
echo 'deb https://deb.nodesource.com/node_14.x focal main' \
|
||||
> /etc/apt/sources.list.d/nodesource.list && \
|
||||
curl -s https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
|
||||
echo 'deb https://dl.yarnpkg.com/debian/ stable main' \
|
||||
> /etc/apt/sources.list.d/yarn.list && \
|
||||
echo "**** install build dependencies ****" && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
build-essential \
|
||||
libx11-dev \
|
||||
libxkbfile-dev \
|
||||
pkg-config \
|
||||
python3 && \
|
||||
nodejs && \
|
||||
echo "**** install runtime dependencies ****" && \
|
||||
apt-get install -y \
|
||||
git \
|
||||
jq \
|
||||
libatomic1 \
|
||||
nano \
|
||||
net-tools \
|
||||
nodejs \
|
||||
sudo \
|
||||
yarn && \
|
||||
sudo && \
|
||||
echo "**** install code-server ****" && \
|
||||
if [ -z ${CODE_RELEASE+x} ]; then \
|
||||
CODE_RELEASE=$(curl -sX GET https://registry.yarnpkg.com/code-server \
|
||||
| jq -r '."dist-tags".latest' | sed 's|^|v|'); \
|
||||
CODE_RELEASE=$(curl -sX GET https://api.github.com/repos/coder/code-server/releases/latest \
|
||||
| awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^v||'); \
|
||||
fi && \
|
||||
mkdir -p /app/code-server && \
|
||||
curl -o \
|
||||
/tmp/code-server.tar.gz -L \
|
||||
"https://github.com/coder/code-server/releases/download/v${CODE_RELEASE}/code-server-${CODE_RELEASE}-linux-armv7l.tar.gz" && \
|
||||
tar xf /tmp/code-server.tar.gz -C \
|
||||
/app/code-server --strip-components=1 && \
|
||||
echo "**** patch 4.0.2 ****" && \
|
||||
if [ "${CODE_RELEASE}" = "4.0.2" ] && [ "$(uname -m)" != "x86_64" ]; then \
|
||||
cd /app/code-server && \
|
||||
npm i --production @node-rs/argon2; \
|
||||
fi && \
|
||||
CODE_VERSION=$(echo "$CODE_RELEASE" | awk '{print substr($1,2); }') && \
|
||||
npm config set python python3 && \
|
||||
yarn config set network-timeout 600000 -g && \
|
||||
yarn --production --verbose --frozen-lockfile global add code-server@"$CODE_VERSION" && \
|
||||
yarn cache clean && \
|
||||
echo "**** clean up ****" && \
|
||||
apt-get purge --auto-remove -y \
|
||||
build-essential \
|
||||
libx11-dev \
|
||||
libxkbfile-dev \
|
||||
libsecret-1-dev \
|
||||
pkg-config && \
|
||||
nodejs && \
|
||||
apt-get clean && \
|
||||
rm -rf \
|
||||
/config/* \
|
||||
/tmp/* \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/tmp/*
|
||||
/var/tmp/* \
|
||||
/etc/apt/sources.list.d/nodesource.list
|
||||
|
||||
# add local files
|
||||
COPY /root /
|
||||
|
||||
90
Jenkinsfile
vendored
90
Jenkinsfile
vendored
@@ -104,7 +104,7 @@ pipeline {
|
||||
steps{
|
||||
script{
|
||||
env.EXT_RELEASE = sh(
|
||||
script: ''' curl -sX GET https://registry.yarnpkg.com/code-server | jq -r '."dist-tags".latest' | sed 's|^|v|' ''',
|
||||
script: ''' curl -sX GET https://api.github.com/repos/coder/code-server/releases/latest | jq -r '.tag_name' | sed 's|^v||' ''',
|
||||
returnStdout: true).trim()
|
||||
env.RELEASE_LINK = 'custom_command'
|
||||
}
|
||||
@@ -118,12 +118,11 @@ pipeline {
|
||||
script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''',
|
||||
returnStdout: true).trim()
|
||||
|
||||
env.SEMVER = (new Date()).format('YYYY.MM.dd')
|
||||
def semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)\.(\d+)$/
|
||||
def semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)\.(\d+)/
|
||||
if (semver.find()) {
|
||||
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${semver[0][3]}"
|
||||
} else {
|
||||
semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)(?:\.(\d+))?(.*)$/
|
||||
semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)(?:\.(\d+))?(.*)/
|
||||
if (semver.find()) {
|
||||
if (semver[0][3]) {
|
||||
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${semver[0][3]}"
|
||||
@@ -133,7 +132,15 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
println("SEMVER: ${env.SEMVER}")
|
||||
if (env.SEMVER != null) {
|
||||
if (BRANCH_NAME != "master" && BRANCH_NAME != "main") {
|
||||
env.SEMVER = "${env.SEMVER}-${BRANCH_NAME}"
|
||||
}
|
||||
println("SEMVER: ${env.SEMVER}")
|
||||
} else {
|
||||
println("No SEMVER detected")
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -402,10 +409,10 @@ pipeline {
|
||||
steps{
|
||||
sh '''#! /bin/bash
|
||||
set -e
|
||||
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/packages | jq -r '.[] | select(.name=="linuxserver/code-server") | .uuid')
|
||||
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/code-server") | .uuid')
|
||||
if [ -z "${PACKAGE_UUID}" ]; then
|
||||
echo "Adding package to Scarf.sh"
|
||||
PACKAGE_UUID=$(curl -sX POST https://scarf.sh/api/v1/packages \
|
||||
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
|
||||
-H "Authorization: Bearer ${SCARF_TOKEN}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"name":"linuxserver/code-server",\
|
||||
@@ -413,22 +420,10 @@ pipeline {
|
||||
"libraryType":"docker",\
|
||||
"website":"https://github.com/linuxserver/docker-code-server",\
|
||||
"backendUrl":"https://ghcr.io/linuxserver/code-server",\
|
||||
"publicUrl":"https://lscr.io/linuxserver/code-server"}' \
|
||||
| jq -r .uuid)
|
||||
"publicUrl":"https://lscr.io/linuxserver/code-server"}' || :
|
||||
else
|
||||
echo "Package already exists on Scarf.sh"
|
||||
fi
|
||||
echo "Setting permissions on Scarf.sh for package ${PACKAGE_UUID}"
|
||||
curl -X POST https://scarf.sh/api/v1/packages/${PACKAGE_UUID}/permissions \
|
||||
-H "Authorization: Bearer ${SCARF_TOKEN}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '[{"userQuery":"Spad","permissionLevel":"admin"},\
|
||||
{"userQuery":"roxedus","permissionLevel":"admin"},\
|
||||
{"userQuery":"nemchik","permissionLevel":"admin"},\
|
||||
{"userQuery":"driz","permissionLevel":"admin"},\
|
||||
{"userQuery":"aptalca","permissionLevel":"admin"},\
|
||||
{"userQuery":"saarg","permissionLevel":"admin"},\
|
||||
{"userQuery":"Stark","permissionLevel":"admin"}]'
|
||||
'''
|
||||
}
|
||||
}
|
||||
@@ -752,11 +747,15 @@ pipeline {
|
||||
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
|
||||
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
|
||||
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
|
||||
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
|
||||
fi
|
||||
docker push ${PUSHIMAGE}:latest
|
||||
docker push ${PUSHIMAGE}:${META_TAG}
|
||||
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
|
||||
docker push ${PUSHIMAGE}:${SEMVER}
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker push ${PUSHIMAGE}:${SEMVER}
|
||||
fi
|
||||
done
|
||||
'''
|
||||
}
|
||||
@@ -765,8 +764,10 @@ pipeline {
|
||||
docker rmi \
|
||||
${DELETEIMAGE}:${META_TAG} \
|
||||
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
|
||||
${DELETEIMAGE}:latest \
|
||||
${DELETEIMAGE}:${SEMVER} || :
|
||||
${DELETEIMAGE}:latest || :
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker rmi ${DELETEIMAGE}:${SEMVER} || :
|
||||
fi
|
||||
done
|
||||
'''
|
||||
}
|
||||
@@ -816,9 +817,11 @@ pipeline {
|
||||
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
|
||||
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
|
||||
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
||||
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
|
||||
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
|
||||
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
|
||||
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
|
||||
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||
fi
|
||||
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
|
||||
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
|
||||
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
||||
@@ -828,9 +831,11 @@ pipeline {
|
||||
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
|
||||
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
|
||||
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
||||
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
|
||||
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
|
||||
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
|
||||
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
|
||||
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||
fi
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
|
||||
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
|
||||
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
|
||||
@@ -843,14 +848,18 @@ pipeline {
|
||||
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
||||
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
|
||||
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
|
||||
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
|
||||
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
|
||||
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
|
||||
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
|
||||
fi
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:latest
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
|
||||
fi
|
||||
done
|
||||
'''
|
||||
}
|
||||
@@ -860,15 +869,18 @@ pipeline {
|
||||
${DELETEIMAGE}:amd64-${META_TAG} \
|
||||
${DELETEIMAGE}:amd64-latest \
|
||||
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
|
||||
${DELETEIMAGE}:amd64-${SEMVER} \
|
||||
${DELETEIMAGE}:arm32v7-${META_TAG} \
|
||||
${DELETEIMAGE}:arm32v7-latest \
|
||||
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
|
||||
${DELETEIMAGE}:arm32v7-${SEMVER} \
|
||||
${DELETEIMAGE}:arm64v8-${META_TAG} \
|
||||
${DELETEIMAGE}:arm64v8-latest \
|
||||
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} \
|
||||
${DELETEIMAGE}:arm64v8-${SEMVER} || :
|
||||
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker rmi \
|
||||
${DELETEIMAGE}:amd64-${SEMVER} \
|
||||
${DELETEIMAGE}:arm32v7-${SEMVER} \
|
||||
${DELETEIMAGE}:arm64v8-${SEMVER} || :
|
||||
fi
|
||||
done
|
||||
docker rmi \
|
||||
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
|
||||
|
||||
@@ -29,6 +29,7 @@ Find us at:
|
||||
|
||||
# [linuxserver/code-server](https://github.com/linuxserver/docker-code-server)
|
||||
|
||||
[](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fcode-server)
|
||||
[](https://github.com/linuxserver/docker-code-server)
|
||||
[](https://github.com/linuxserver/docker-code-server/releases)
|
||||
[](https://github.com/linuxserver/docker-code-server/packages)
|
||||
@@ -110,6 +111,7 @@ services:
|
||||
- SUDO_PASSWORD=password #optional
|
||||
- SUDO_PASSWORD_HASH= #optional
|
||||
- PROXY_DOMAIN=code-server.my.domain #optional
|
||||
- DEFAULT_WORKSPACE=/config/workspace #optional
|
||||
volumes:
|
||||
- /path/to/appdata/config:/config
|
||||
ports:
|
||||
@@ -130,6 +132,7 @@ docker run -d \
|
||||
-e SUDO_PASSWORD=password `#optional` \
|
||||
-e SUDO_PASSWORD_HASH= `#optional` \
|
||||
-e PROXY_DOMAIN=code-server.my.domain `#optional` \
|
||||
-e DEFAULT_WORKSPACE=/config/workspace `#optional` \
|
||||
-p 8443:8443 \
|
||||
-v /path/to/appdata/config:/config \
|
||||
--restart unless-stopped \
|
||||
@@ -151,6 +154,7 @@ Container images are configured using parameters passed at runtime (such as thos
|
||||
| `-e SUDO_PASSWORD=password` | If this optional variable is set, user will have sudo access in the code-server terminal with the specified password. |
|
||||
| `-e SUDO_PASSWORD_HASH=` | Optionally set sudo password via hash (takes priority over `SUDO_PASSWORD` var). Format is `$type$salt$hashed`. |
|
||||
| `-e PROXY_DOMAIN=code-server.my.domain` | If this optional variable is set, this domain will be proxied for subdomain proxying. See [Documentation](https://github.com/cdr/code-server/blob/master/docs/FAQ.md#sub-domains) |
|
||||
| `-e DEFAULT_WORKSPACE=/config/workspace` | If this optional variable is set, code-server will open this directory by default |
|
||||
| `-v /config` | Contains all relevant configuration files. |
|
||||
|
||||
## Environment variables from files (Docker secrets)
|
||||
@@ -262,6 +266,9 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
||||
|
||||
## Versions
|
||||
|
||||
* **20.02.22:** - Install using the official tarballs.
|
||||
* **29.12.21:** - Add `install-extension` as a helper for mods to install extensions.
|
||||
* **06.12.21:** - Add `DEFAULT_WORKSPACE` env var.
|
||||
* **29.11.21:** - Rebase to Ubuntu focal.
|
||||
* **16.09.21:** - Fix slow `chown` on large workspace (contents of workspace folder no longer chowned).
|
||||
* **11.07.21:** - Bump node to 14 to fix builds
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# jenkins variables
|
||||
project_name: docker-code-server
|
||||
external_type: na
|
||||
custom_version_command: "curl -sX GET https://registry.yarnpkg.com/code-server | jq -r '.\"dist-tags\".latest' | sed 's|^|v|'"
|
||||
custom_version_command: "curl -sX GET https://api.github.com/repos/coder/code-server/releases/latest | jq -r '.tag_name' | sed 's|^v||'"
|
||||
release_type: stable
|
||||
release_tag: latest
|
||||
ls_branch: master
|
||||
|
||||
@@ -4,7 +4,7 @@ apt-utils2.0.6
|
||||
base-files11ubuntu5.4
|
||||
base-passwd3.5.47
|
||||
bash5.0-6ubuntu1.1
|
||||
bsdutils1:2.34-0.1ubuntu9.1
|
||||
bsdutils1:2.34-0.1ubuntu9.3
|
||||
bzip21.0.8-2
|
||||
ca-certificates20210119~20.04.2
|
||||
coreutils8.30-3ubuntu2
|
||||
@@ -16,8 +16,7 @@ diffutils1:3.7-3
|
||||
dirmngr2.2.19-3ubuntu2.1
|
||||
dpkg1.19.7ubuntu3
|
||||
e2fsprogs1.45.5-2ubuntu1
|
||||
fdisk2.34-0.1ubuntu9.1
|
||||
file1:5.38-4
|
||||
fdisk2.34-0.1ubuntu9.3
|
||||
findutils4.7.0-1ubuntu1
|
||||
gcc-10-base10.3.0-1ubuntu1~20.04
|
||||
git1:2.25.1-1ubuntu3.2
|
||||
@@ -43,10 +42,11 @@ libacl12.2.53-6
|
||||
libapt-pkg6.02.0.6
|
||||
libasn1-8-heimdal7.7.0+dfsg-1ubuntu1
|
||||
libassuan02.5.3-7ubuntu2
|
||||
libatomic110.3.0-1ubuntu1~20.04
|
||||
libattr11:2.4.48-5
|
||||
libaudit11:2.8.5-2ubuntu6
|
||||
libaudit-common1:2.8.5-2ubuntu6
|
||||
libblkid12.34-0.1ubuntu9.1
|
||||
libblkid12.34-0.1ubuntu9.3
|
||||
libbrotli11.0.7-6ubuntu0.1
|
||||
libbsd00.10.0-1
|
||||
libbz2-1.01.0.8-2
|
||||
@@ -64,7 +64,7 @@ libedit23.1-20191231-1
|
||||
liberror-perl0.17029-1
|
||||
libexpat12.2.9-1build1
|
||||
libext2fs21.45.5-2ubuntu1
|
||||
libfdisk12.34-0.1ubuntu9.1
|
||||
libfdisk12.34-0.1ubuntu9.3
|
||||
libffi73.3-4
|
||||
libfido2-11.3.1-1ubuntu2
|
||||
libgcc-s110.3.0-1ubuntu1~20.04
|
||||
@@ -93,10 +93,7 @@ libldap-2.4-22.4.49+dfsg-2ubuntu1.8
|
||||
libldap-common2.4.49+dfsg-2ubuntu1.8
|
||||
liblz4-11.9.2-2ubuntu0.20.04.1
|
||||
liblzma55.2.4-1ubuntu1
|
||||
libmagic11:5.38-4
|
||||
libmagic-mgc1:5.38-4
|
||||
libmount12.34-0.1ubuntu9.1
|
||||
libmpdec22.4.2-3
|
||||
libmount12.34-0.1ubuntu9.3
|
||||
libncurses66.2-0ubuntu2
|
||||
libncursesw66.2-0ubuntu2
|
||||
libnettle73.5.1+really3.5.1-2ubuntu0.2
|
||||
@@ -113,32 +110,29 @@ libpcre32:8.39-12build1
|
||||
libperl5.305.30.0-9ubuntu0.2
|
||||
libprocps82:3.3.16-1ubuntu2.3
|
||||
libpsl50.21.0-1ubuntu1
|
||||
libpython3.8-minimal3.8.10-0ubuntu1~20.04.1
|
||||
libpython3.8-stdlib3.8.10-0ubuntu1~20.04.1
|
||||
libpython3-stdlib3.8.2-0ubuntu2
|
||||
libreadline88.0-4
|
||||
libroken18-heimdal7.7.0+dfsg-1ubuntu1
|
||||
librtmp12.4+20151223.gitfa8646d.1-2build1
|
||||
libsasl2-22.1.27+dfsg-2
|
||||
libsasl2-modules2.1.27+dfsg-2
|
||||
libsasl2-modules-db2.1.27+dfsg-2
|
||||
libseccomp22.5.1-1ubuntu1~20.04.1
|
||||
libseccomp22.5.1-1ubuntu1~20.04.2
|
||||
libselinux13.0-1build2
|
||||
libsemanage13.0-1build2
|
||||
libsemanage-common3.0-1build2
|
||||
libsepol13.0-1
|
||||
libsmartcols12.34-0.1ubuntu9.1
|
||||
libsmartcols12.34-0.1ubuntu9.3
|
||||
libsqlite3-03.31.1-4ubuntu0.2
|
||||
libss21.45.5-2ubuntu1
|
||||
libssh-40.9.3-2ubuntu2.2
|
||||
libssl1.11.1.1f-1ubuntu2.9
|
||||
libssl1.11.1.1f-1ubuntu2.10
|
||||
libstdc++610.3.0-1ubuntu1~20.04
|
||||
libsystemd0245.4-4ubuntu3.13
|
||||
libsystemd0245.4-4ubuntu3.15
|
||||
libtasn1-64.16.0-2
|
||||
libtinfo66.2-0ubuntu2
|
||||
libudev1245.4-4ubuntu3.13
|
||||
libudev1245.4-4ubuntu3.15
|
||||
libunistring20.9.10-2
|
||||
libuuid12.34-0.1ubuntu9.1
|
||||
libuuid12.34-0.1ubuntu9.3
|
||||
libwind0-heimdal7.7.0+dfsg-1ubuntu1
|
||||
libx11-62:1.6.9-2ubuntu1.2
|
||||
libx11-data2:1.6.9-2ubuntu1.2
|
||||
@@ -153,16 +147,14 @@ login1:4.8.1-1ubuntu5.20.04.1
|
||||
logsave1.45.5-2ubuntu1
|
||||
lsb-base11.1.0ubuntu2
|
||||
mawk1.3.4.20200120-2
|
||||
mime-support3.64ubuntu1
|
||||
mount2.34-0.1ubuntu9.1
|
||||
mount2.34-0.1ubuntu9.3
|
||||
nano4.8-1ubuntu1
|
||||
ncurses-base6.2-0ubuntu2
|
||||
ncurses-bin6.2-0ubuntu2
|
||||
netbase6.1
|
||||
net-tools1.60+git20180626.aebd88e-1ubuntu1
|
||||
nodejs14.18.2-deb-1nodesource1
|
||||
openssh-client1:8.2p1-4ubuntu0.3
|
||||
openssl1.1.1f-1ubuntu2.9
|
||||
openssh-client1:8.2p1-4ubuntu0.4
|
||||
openssl1.1.1f-1ubuntu2.10
|
||||
passwd1:4.8.1-1ubuntu5.20.04.1
|
||||
patch2.7.6-6
|
||||
perl5.30.0-9ubuntu0.2
|
||||
@@ -171,10 +163,6 @@ perl-modules-5.305.30.0-9ubuntu0.2
|
||||
pinentry-curses1.1.0-3build1
|
||||
procps2:3.3.16-1ubuntu2.3
|
||||
publicsuffix20200303.0012-1
|
||||
python33.8.2-0ubuntu2
|
||||
python3.83.8.10-0ubuntu1~20.04.1
|
||||
python3.8-minimal3.8.10-0ubuntu1~20.04.1
|
||||
python3-minimal3.8.2-0ubuntu2
|
||||
readline-common8.0-4
|
||||
sed4.7-1
|
||||
sensible-utils0.0.12+nmu1
|
||||
@@ -183,8 +171,6 @@ sysvinit-utils2.96-2.1ubuntu1
|
||||
tar1.30+dfsg-7ubuntu0.20.04.1
|
||||
tzdata2021e-0ubuntu0.20.04
|
||||
ubuntu-keyring2020.02.11.4
|
||||
util-linux2.34-0.1ubuntu9.1
|
||||
util-linux2.34-0.1ubuntu9.3
|
||||
xauth1:1.1-0ubuntu1
|
||||
xz-utils5.2.4-1ubuntu1
|
||||
yarn1.22.15-1
|
||||
zlib1g1:1.2.11.dfsg-2ubuntu1.2
|
||||
|
||||
@@ -53,6 +53,7 @@ opt_param_env_vars:
|
||||
- { env_var: "SUDO_PASSWORD", env_value: "password", desc: "If this optional variable is set, user will have sudo access in the code-server terminal with the specified password." }
|
||||
- { env_var: "SUDO_PASSWORD_HASH", env_value: "", desc: "Optionally set sudo password via hash (takes priority over `SUDO_PASSWORD` var). Format is `$type$salt$hashed`." }
|
||||
- { env_var: "PROXY_DOMAIN", env_value: "code-server.my.domain", desc: "If this optional variable is set, this domain will be proxied for subdomain proxying. See [Documentation](https://github.com/cdr/code-server/blob/master/docs/FAQ.md#sub-domains)" }
|
||||
- { env_var: "DEFAULT_WORKSPACE", env_value: "/config/workspace", desc: "If this optional variable is set, code-server will open this directory by default" }
|
||||
|
||||
optional_block_1: false
|
||||
optional_block_1_items: ""
|
||||
@@ -76,6 +77,9 @@ app_setup_block: |
|
||||
|
||||
# changelog
|
||||
changelogs:
|
||||
- { date: "20.02.22:", desc: "Install using the official tarballs." }
|
||||
- { date: "29.12.21:", desc: "Add `install-extension` as a helper for mods to install extensions." }
|
||||
- { date: "06.12.21:", desc: "Add `DEFAULT_WORKSPACE` env var." }
|
||||
- { date: "29.11.21:", desc: "Rebase to Ubuntu focal." }
|
||||
- { date: "16.09.21:", desc: "Fix slow `chown` on large workspace (contents of workspace folder no longer chowned)." }
|
||||
- { date: "11.07.21:", desc: "Bump node to 14 to fix builds" }
|
||||
|
||||
@@ -15,11 +15,11 @@ fi
|
||||
|
||||
exec \
|
||||
s6-setuidgid abc \
|
||||
/usr/local/bin/code-server \
|
||||
/app/code-server/bin/code-server \
|
||||
--bind-addr 0.0.0.0:8443 \
|
||||
--user-data-dir /config/data \
|
||||
--extensions-dir /config/extensions \
|
||||
--disable-telemetry \
|
||||
--auth "${AUTH}" \
|
||||
"${PROXY_DOMAIN_ARG}" \
|
||||
/config/workspace
|
||||
"${DEFAULT_WORKSPACE:-/config/workspace}"
|
||||
|
||||
10
root/usr/local/bin/install-extension
Executable file
10
root/usr/local/bin/install-extension
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/with-contenv bash
|
||||
# shellcheck shell=bash
|
||||
|
||||
_install=(/app/code-server/bin/code-server "--extensions-dir" "/config/extensions" "--install-extension")
|
||||
|
||||
if [ "$(whoami)" == "abc" ]; then
|
||||
"${_install[@]}" "$@"
|
||||
else
|
||||
s6-setuidgid abc "${_install[@]}" "$@"
|
||||
fi
|
||||
Reference in New Issue
Block a user