Compare commits

..

68 Commits

Author SHA1 Message Date
j0nnymoe
a4979fe086 Merge pull request #35 from linuxserver/lockfile
update yarn instructions
2020-09-02 09:56:02 +01:00
aptalca
47429478a1 update yarn instructions 2020-09-02 04:11:32 -04:00
LinuxServer-CI
ad8112c034 Bot Updating Package Versions 2020-09-01 15:34:57 +00:00
LinuxServer-CI
ae6a5488e9 Bot Updating Templated Files 2020-09-01 11:17:59 -04:00
LinuxServer-CI
8d6b7bdbe2 Bot Updating Templated Files 2020-09-01 15:16:46 +00:00
chbmb
9d4396ba36 Merge pull request #33 from linuxserver/banner
update banner
2020-06-13 23:02:50 +01:00
aptalca
1a4bc80986 update banner 2020-06-13 17:53:35 -04:00
LinuxServer-CI
1d69eac73c Bot Updating Templated Files 2020-06-04 17:17:10 +00:00
LinuxServer-CI
e402cc2e16 Bot Updating Templated Files 2020-05-29 17:51:28 +00:00
aptalca
00afdeb441 Merge pull request #30 from n-i-x/n-i-x-patch-1
Add support for --proxy-domain
2020-05-29 13:50:10 -04:00
n-i-x
08841b0f51 Remove docker-compose vars 2020-05-29 11:50:49 -04:00
n-i-x
54d481ef55 move readme stuff into readme-vars 2020-05-29 11:38:41 -04:00
jrebey
d413b7d2a6 remove weird code-server: 2020-05-29 10:26:24 -04:00
jrebey
2edc59783f editor set to spaces not tabs :/ 2020-05-29 10:25:32 -04:00
jrebey
af00f6d309 remove golang mod PATH 2020-05-29 10:24:32 -04:00
jrebey
2b8da35c3b Merge remote-tracking branch 'upstream/master' into n-i-x-patch-1 2020-05-29 10:22:03 -04:00
LinuxServer-CI
b456c30f0c Bot Updating Package Versions 2020-05-28 19:53:29 +00:00
LinuxServer-CI
babc486031 Bot Updating Templated Files 2020-05-28 19:44:11 +00:00
LinuxServer-CI
b64f2d360c Bot Updating Package Versions 2020-05-28 10:36:17 +00:00
LinuxServer-CI
98569fb679 Bot Updating Package Versions 2020-05-21 22:28:33 +02:00
aptalca
7fb25d3ff4 Merge pull request #32 from linuxserver/yarn
shrink image, install via yarn, fix arm build
2020-05-21 16:12:26 -04:00
aptalca
0b97beb8db shrink image, install via yarn, fix arm build 2020-05-21 15:30:45 -04:00
LinuxServer-CI
7fcde50bab Bot Updating Package Versions 2020-05-20 19:06:42 +00:00
aptalca
c124f2c48d Merge pull request #28 from linuxserver/url
Multi-arch, install via npm
2020-05-20 14:29:31 -04:00
n-i-x
9ae8d18bd2 Update readme-vars.yml 2020-05-19 23:16:37 -04:00
n-i-x
f2c46c0e0d Add --proxy-domain documentation 2020-05-19 23:12:42 -04:00
n-i-x
eb7eaa456a Add --proxy-domain support 2020-05-19 23:06:47 -04:00
aptalca
9137da0f15 Switch to multi-arch, install via npm 2020-05-18 13:56:58 -04:00
LinuxServer-CI
84873a6b62 Bot Updating Package Versions 2020-05-17 09:16:35 +00:00
aptalca
684c6b645d Merge pull request #27 from linuxserver/start
Update start arguments
2020-04-29 19:58:24 -04:00
aptalca
1ab135cd82 Update start arguments 2020-04-29 18:45:31 -04:00
LinuxServer-CI
0f3500e097 Bot Updating Templated Files 2020-04-29 22:16:51 +00:00
LinuxServer-CI
364e6a0585 Bot Updating Package Versions 2020-04-26 05:16:39 -04:00
LinuxServer-CI
eb7631737c Bot Updating Package Versions 2020-04-15 11:17:43 -04:00
LinuxServer-CI
b9d1cc0cde Bot Updating Package Versions 2020-04-09 20:18:50 -04:00
LinuxServer-CI
fab6b30741 Bot Updating Templated Files 2020-04-09 19:17:12 -05:00
aptalca
1ae56e78a7 Merge pull request #26 from linuxserver/v3
structural changes for v3
2020-04-01 22:04:25 -04:00
aptalca
961ab3d4c5 structural changes for v3 2020-04-01 21:52:28 -04:00
LinuxServer-CI
b8c02345f2 Bot Updating Package Versions 2020-03-29 09:17:05 +00:00
LinuxServer-CI
c905b2d26e Bot Updating Package Versions 2020-03-19 19:16:46 -04:00
aptalca
797d9df2e6 Merge pull request #24 from linuxserver/updatelogo
update to new animated logo
2020-03-19 19:15:16 -04:00
thelamer
29a014957c update to new animated logo 2020-03-19 15:21:15 -07:00
LinuxServer-CI
244156dbde Bot Updating Package Versions 2020-03-15 10:17:02 +00:00
LinuxServer-CI
ad6d5a936b Bot Updating Package Versions 2020-02-23 05:16:54 -05:00
LinuxServer-CI
13d3722e71 Bot Updating Package Versions 2020-02-16 10:16:45 +00:00
LinuxServer-CI
74a7581d70 Bot Updating Package Versions 2020-02-09 10:16:21 +00:00
LinuxServer-CI
8c70a3ebf3 Bot Updating Package Versions 2020-02-02 05:16:56 -05:00
LinuxServer-CI
a9346cfc98 Bot Updating Package Versions 2020-01-26 10:16:38 +00:00
LinuxServer-CI
2833c89c78 Bot Updating Package Versions 2020-01-18 04:54:49 +01:00
aptalca
3d83533d55 fix artifact retrieval 2020-01-17 19:52:43 -08:00
LinuxServer-CI
0a84da8cbc Bot Updating Package Versions 2019-12-15 10:16:23 +00:00
LinuxServer-CI
9b216da63c Bot Updating Package Versions 2019-12-08 05:17:08 -05:00
LinuxServer-CI
edc6c7946f Bot Updating Templated Files 2019-12-01 05:15:47 -05:00
LinuxServer-CI
3c29bed31f Bot Updating Package Versions 2019-11-24 10:16:36 +00:00
LinuxServer-CI
590a4e11e8 Bot Updating Templated Files 2019-10-30 14:42:45 -04:00
LinuxServer-CI
10c27ab1a4 Bot Updating Package Versions 2019-10-30 14:19:09 -04:00
LinuxServer-CI
6984171e38 Bot Updating Templated Files 2019-10-30 14:17:21 -04:00
aptalca
c1d35b1473 fix auth param 2019-10-24 13:35:23 -07:00
aptalca
a3a6e0f937 v2 compatibility 2019-10-24 13:35:23 -07:00
LinuxServer-CI
524ba35499 Bot Updating Package Versions 2019-10-20 05:16:54 -04:00
LinuxServer-CI
11862601e8 Bot Updating Package Versions 2019-10-13 05:20:05 -04:00
LinuxServer-CI
81feb2f1b2 Bot Updating Templated Files 2019-10-13 05:17:12 -04:00
LinuxServer-CI
4736401320 Bot Updating Templated Files 2019-10-13 10:16:03 +01:00
LinuxServer-CI
11879beabf Bot Updating Package Versions 2019-10-06 10:16:28 +01:00
chbmb
9c27d62f8b Merge pull request #11 from linuxserver/logo
update project logo
2019-09-28 20:11:16 +01:00
aptalca
e92996b547 update project logo 2019-09-28 14:57:30 -04:00
LinuxServer-CI
90a6230676 Bot Updating Package Versions 2019-09-21 07:16:31 +01:00
aptalca
6a460b9e79 add development tag 2019-09-20 23:14:36 -07:00
11 changed files with 361 additions and 98 deletions

13
.github/workflows/greetings.yml vendored Executable file
View File

@@ -0,0 +1,13 @@
name: Greetings
on: [pull_request_target, issues]
jobs:
greeting:
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 [issue template](https://github.com/linuxserver/docker-code-server/.github/ISSUE_TEMPLATE.md)!'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-code-server/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}

23
.github/workflows/stale.yml vendored Executable file
View File

@@ -0,0 +1,23 @@
name: Mark stale issues and pull requests
on:
schedule:
- cron: "30 1 * * *"
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v1
with:
stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
stale-issue-label: 'no-issue-activity'
stale-pr-label: 'no-pr-activity'
days-before-stale: 30
days-before-close: 365
exempt-issue-labels: 'awaiting-approval,work-in-progress'
exempt-pr-labels: 'awaiting-approval,work-in-progress'
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -11,28 +11,49 @@ LABEL maintainer="aptalca"
ENV HOME="/config" ENV HOME="/config"
RUN \ RUN \
echo "**** install dependencies ****" && \ echo "**** install node repo ****" && \
apt-get update && \ 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_12.x bionic 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 \
libsecret-1-dev \
pkg-config && \
echo "**** install runtime dependencies ****" && \
apt-get install -y \ apt-get install -y \
git \ git \
jq \ jq \
nano \ nano \
net-tools \ net-tools \
sudo && \ nodejs \
sudo \
yarn && \
echo "**** install code-server ****" && \ echo "**** install code-server ****" && \
if [ -z ${CODE_RELEASE+x} ]; then \ if [ -z ${CODE_RELEASE+x} ]; then \
CODE_RELEASE=$(curl -sX GET "https://api.github.com/repos/cdr/code-server/releases" \ CODE_RELEASE=$(curl -sX GET "https://api.github.com/repos/cdr/code-server/releases/latest" \
| jq -r 'first(.[] | select(.prerelease == true)) | .tag_name'); \ | awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \ fi && \
CODE_URL=$(curl -sX GET "https://api.github.com/repos/cdr/code-server/releases/tags/${CODE_RELEASE}" \ CODE_VERSION=$(echo "$CODE_RELEASE" | awk '{print substr($1,2); }') && \
| jq -r '.assets[] | select(.browser_download_url | contains("linux-x86_64")) | .browser_download_url') && \ yarn --production --frozen-lockfile global add code-server@"$CODE_VERSION" && \
mkdir -p /app/code-server && \ yarn cache clean && \
curl -o \
/tmp/code.tar.gz -L \
"${CODE_URL}" && \
tar xzf /tmp/code.tar.gz -C \
/app/code-server --strip-components=1 && \
echo "**** clean up ****" && \ echo "**** clean up ****" && \
apt-get purge --auto-remove -y \
build-essential \
libx11-dev \
libxkbfile-dev \
libsecret-1-dev \
pkg-config && \
apt-get clean && \
rm -rf \ rm -rf \
/tmp/* \ /tmp/* \
/var/lib/apt/lists/* \ /var/lib/apt/lists/* \

66
Dockerfile.aarch64 Normal file
View File

@@ -0,0 +1,66 @@
FROM lsiobase/ubuntu:arm64v8-bionic
# set version label
ARG BUILD_DATE
ARG VERSION
ARG CODE_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca"
# environment settings
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_12.x bionic 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 \
libsecret-1-dev \
pkg-config && \
echo "**** install runtime dependencies ****" && \
apt-get install -y \
git \
jq \
nano \
net-tools \
nodejs \
sudo \
yarn && \
echo "**** install code-server ****" && \
if [ -z ${CODE_RELEASE+x} ]; then \
CODE_RELEASE=$(curl -sX GET "https://api.github.com/repos/cdr/code-server/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
CODE_VERSION=$(echo "$CODE_RELEASE" | awk '{print substr($1,2); }') && \
yarn --production --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 && \
apt-get clean && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
# add local files
COPY /root /
# ports and volumes
EXPOSE 8443

66
Dockerfile.armhf Normal file
View File

@@ -0,0 +1,66 @@
FROM lsiobase/ubuntu:arm32v7-bionic
# set version label
ARG BUILD_DATE
ARG VERSION
ARG CODE_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca"
# environment settings
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_12.x bionic 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 \
libsecret-1-dev \
pkg-config && \
echo "**** install runtime dependencies ****" && \
apt-get install -y \
git \
jq \
nano \
net-tools \
nodejs \
sudo \
yarn && \
echo "**** install code-server ****" && \
if [ -z ${CODE_RELEASE+x} ]; then \
CODE_RELEASE=$(curl -sX GET "https://api.github.com/repos/cdr/code-server/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
CODE_VERSION=$(echo "$CODE_RELEASE" | awk '{print substr($1,2); }') && \
yarn --production --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 && \
apt-get clean && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
# add local files
COPY /root /
# ports and volumes
EXPOSE 8443

116
Jenkinsfile vendored
View File

@@ -16,8 +16,9 @@ pipeline {
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab') GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0') GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id') GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
JSON_URL = 'https://api.github.com/repos/cdr/code-server/releases' EXT_GIT_BRANCH = 'master'
JSON_PATH = 'first(.[] | select(.prerelease == true)) | .tag_name' EXT_USER = 'cdr'
EXT_REPO = 'code-server'
CONTAINER_NAME = 'code-server' CONTAINER_NAME = 'code-server'
BUILD_VERSION_ARG = 'CODE_RELEASE' BUILD_VERSION_ARG = 'CODE_RELEASE'
LS_USER = 'linuxserver' LS_USER = 'linuxserver'
@@ -26,7 +27,7 @@ pipeline {
DEV_DOCKERHUB_IMAGE = 'lsiodev/code-server' DEV_DOCKERHUB_IMAGE = 'lsiodev/code-server'
PR_DOCKERHUB_IMAGE = 'lspipepr/code-server' PR_DOCKERHUB_IMAGE = 'lspipepr/code-server'
DIST_IMAGE = 'ubuntu' DIST_IMAGE = 'ubuntu'
MULTIARCH='false' MULTIARCH='true'
CI='true' CI='true'
CI_WEB='true' CI_WEB='true'
CI_PORT='8443' CI_PORT='8443'
@@ -43,7 +44,7 @@ pipeline {
script{ script{
env.EXIT_STATUS = '' env.EXIT_STATUS = ''
env.LS_RELEASE = sh( env.LS_RELEASE = sh(
script: '''docker run --rm alexeiled/skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':development 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', script: '''docker run --rm alexeiled/skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':latest 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
returnStdout: true).trim() returnStdout: true).trim()
env.LS_RELEASE_NOTES = sh( 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' ''', 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' ''',
@@ -57,7 +58,7 @@ pipeline {
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/' env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
env.PULL_REQUEST = env.CHANGE_ID env.PULL_REQUEST = env.CHANGE_ID
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE.md ./.github/PULL_REQUEST_TEMPLATE.md' env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE.md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/greetings.yml ./.github/workflows/stale.yml'
} }
script{ script{
env.LS_RELEASE_NUMBER = sh( env.LS_RELEASE_NUMBER = sh(
@@ -100,14 +101,21 @@ pipeline {
/* ######################## /* ########################
External Release Tagging External Release Tagging
######################## */ ######################## */
// If this is a custom json endpoint parse the return to get external tag // If this is a stable github release use the latest endpoint from github to determine the ext tag
stage("Set ENV custom_json"){ stage("Set ENV github_stable"){
steps{ steps{
script{ script{
env.EXT_RELEASE = sh( env.EXT_RELEASE = sh(
script: '''curl -s ${JSON_URL} | jq -r ". | ${JSON_PATH}" ''', script: '''curl -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq -r '. | .tag_name' ''',
returnStdout: true).trim() returnStdout: true).trim()
env.RELEASE_LINK = env.JSON_URL }
}
}
// If this is a stable or devel github release generate the link for the build message
stage("Set ENV github_link"){
steps{
script{
env.RELEASE_LINK = 'https://github.com/' + env.EXT_USER + '/' + env.EXT_REPO + '/releases/tag/' + env.EXT_RELEASE
} }
} }
} }
@@ -121,10 +129,10 @@ pipeline {
} }
} }
} }
// If this is a development build use live docker endpoints // If this is a master build use live docker endpoints
stage("Set ENV live build"){ stage("Set ENV live build"){
when { when {
branch "development" branch "master"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
} }
steps { steps {
@@ -144,7 +152,7 @@ pipeline {
// If this is a dev build use dev docker endpoints // If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){ stage("Set ENV dev build"){
when { when {
not {branch "development"} not {branch "master"}
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
} }
steps { steps {
@@ -215,7 +223,7 @@ pipeline {
// Use helper containers to render templated files // Use helper containers to render templated files
stage('Update-Templates') { stage('Update-Templates') {
when { when {
branch "development" branch "master"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
expression { expression {
env.CONTAINER_NAME != null env.CONTAINER_NAME != null
@@ -226,7 +234,7 @@ pipeline {
set -e set -e
TEMPDIR=$(mktemp -d) TEMPDIR=$(mktemp -d)
docker pull linuxserver/jenkins-builder:latest docker pull linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=development -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
cd ${TEMPDIR}/docker-${CONTAINER_NAME} cd ${TEMPDIR}/docker-${CONTAINER_NAME}
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
@@ -234,9 +242,9 @@ pipeline {
mkdir -p ${TEMPDIR}/repo mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f development git checkout -f master
cd ${TEMPDIR}/docker-${CONTAINER_NAME} cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/
cd ${TEMPDIR}/repo/${LS_REPO}/ cd ${TEMPDIR}/repo/${LS_REPO}/
git add ${TEMPLATED_FILES} git add ${TEMPLATED_FILES}
@@ -266,7 +274,7 @@ pipeline {
// Exit the build if the Templated files were just updated // Exit the build if the Templated files were just updated
stage('Template-exit') { stage('Template-exit') {
when { when {
branch "development" branch "master"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true' environment name: 'FILES_UPDATED', value: 'true'
expression { expression {
@@ -389,7 +397,7 @@ pipeline {
// Take the image we just built and dump package versions for comparison // Take the image we just built and dump package versions for comparison
stage('Update-packages') { stage('Update-packages') {
when { when {
branch "development" branch "master"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
@@ -417,7 +425,7 @@ pipeline {
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github" 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 if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f development git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/ cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
cd ${TEMPDIR}/${LS_REPO}/ cd ${TEMPDIR}/${LS_REPO}/
wait wait
@@ -441,7 +449,7 @@ pipeline {
// Exit the build if the package file was just updated // Exit the build if the package file was just updated
stage('PACKAGE-exit') { stage('PACKAGE-exit') {
when { when {
branch "development" branch "master"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true' environment name: 'PACKAGE_UPDATED', value: 'true'
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
@@ -455,7 +463,7 @@ pipeline {
// Exit the build if this is just a package check and there are no changes to push // Exit the build if this is just a package check and there are no changes to push
stage('PACKAGECHECK-exit') { stage('PACKAGECHECK-exit') {
when { when {
branch "development" branch "master"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false' environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
@@ -544,8 +552,8 @@ pipeline {
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG} docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:development docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
docker push ${PUSHIMAGE}:development docker push ${PUSHIMAGE}:latest
docker push ${PUSHIMAGE}:${META_TAG} docker push ${PUSHIMAGE}:${META_TAG}
done done
''' '''
@@ -554,7 +562,7 @@ pipeline {
for DELETEIMAGE in "${GITHUBIMAGE}" "{GITLABIMAGE}" "${IMAGE}"; do for DELETEIMAGE in "${GITHUBIMAGE}" "{GITLABIMAGE}" "${IMAGE}"; do
docker rmi \ docker rmi \
${DELETEIMAGE}:${META_TAG} \ ${DELETEIMAGE}:${META_TAG} \
${DELETEIMAGE}:development || : ${DELETEIMAGE}:latest || :
done done
''' '''
} }
@@ -591,51 +599,51 @@ pipeline {
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-development docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-development docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-development docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
docker push ${MANIFESTIMAGE}:amd64-${META_TAG} docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG} docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:amd64-development docker push ${MANIFESTIMAGE}:amd64-latest
docker push ${MANIFESTIMAGE}:arm32v7-development docker push ${MANIFESTIMAGE}:arm32v7-latest
docker push ${MANIFESTIMAGE}:arm64v8-development docker push ${MANIFESTIMAGE}:arm64v8-latest
docker manifest push --purge ${MANIFESTIMAGE}:development || : docker manifest push --purge ${MANIFESTIMAGE}:latest || :
docker manifest create ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:amd64-development ${MANIFESTIMAGE}:arm32v7-development ${MANIFESTIMAGE}:arm64v8-development docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
docker manifest annotate ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:arm32v7-development --os linux --arch arm docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:arm64v8-development --os linux --arch arm64 --variant v8 docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || : docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8 docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:development docker manifest push --purge ${MANIFESTIMAGE}:latest
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
done done
docker tag ${IMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:amd64-${META_TAG} docker tag ${IMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${GITHUBIMAGE}:arm32v7-${META_TAG} docker tag ${IMAGE}:arm32v7-${META_TAG} ${GITHUBIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-${META_TAG} docker tag ${IMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-${META_TAG}
docker tag ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:development docker tag ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:latest
docker tag ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:${META_TAG} docker tag ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:${META_TAG}
docker tag ${GITHUBIMAGE}:arm32v7-${META_TAG} ${GITHUBIMAGE}:arm32v7-development docker tag ${GITHUBIMAGE}:arm32v7-${META_TAG} ${GITHUBIMAGE}:arm32v7-latest
docker tag ${GITHUBIMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-development docker tag ${GITHUBIMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-latest
docker push ${GITHUBIMAGE}:amd64-${META_TAG} docker push ${GITHUBIMAGE}:amd64-${META_TAG}
docker push ${GITHUBIMAGE}:arm32v7-${META_TAG} docker push ${GITHUBIMAGE}:arm32v7-${META_TAG}
docker push ${GITHUBIMAGE}:arm64v8-${META_TAG} docker push ${GITHUBIMAGE}:arm64v8-${META_TAG}
docker push ${GITHUBIMAGE}:development docker push ${GITHUBIMAGE}:latest
docker push ${GITHUBIMAGE}:${META_TAG} docker push ${GITHUBIMAGE}:${META_TAG}
docker push ${GITHUBIMAGE}:arm32v7-development docker push ${GITHUBIMAGE}:arm32v7-latest
docker push ${GITHUBIMAGE}:arm64v8-development docker push ${GITHUBIMAGE}:arm64v8-latest
''' '''
} }
sh '''#! /bin/bash sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
docker rmi \ docker rmi \
${DELETEIMAGE}:amd64-${META_TAG} \ ${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-development \ ${DELETEIMAGE}:amd64-latest \
${DELETEIMAGE}:arm32v7-${META_TAG} \ ${DELETEIMAGE}:arm32v7-${META_TAG} \
${DELETEIMAGE}:arm32v7-development \ ${DELETEIMAGE}:arm32v7-latest \
${DELETEIMAGE}:arm64v8-${META_TAG} \ ${DELETEIMAGE}:arm64v8-${META_TAG} \
${DELETEIMAGE}:arm64v8-development || : ${DELETEIMAGE}:arm64v8-latest || :
done done
docker rmi \ docker rmi \
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \ lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
@@ -647,7 +655,7 @@ pipeline {
// If this is a public release tag it in the LS Github // If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') { stage('Github-Tag-Push-Release') {
when { when {
branch "development" branch "master"
expression { expression {
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} }
@@ -659,17 +667,17 @@ pipeline {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \ sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\ -d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
"object": "'${COMMIT_SHA}'",\ "object": "'${COMMIT_SHA}'",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to development",\ "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
"type": "commit",\ "type": "commit",\
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' ''' "tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag" echo "Pushing New release for Tag"
sh '''#! /bin/bash sh '''#! /bin/bash
echo "Data change at JSON endpoint ${JSON_URL}" > releasebody.json curl -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq '. |.body' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json
echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\ echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
"target_commitish": "development",\ "target_commitish": "master",\
"name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\ "name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**Remote Changes:**\\n\\n' > start "body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**'${EXT_REPO}' Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": true}' >> releasebody.json printf '","draft": false,"prerelease": false}' >> releasebody.json
paste -d'\\0' start releasebody.json > releasebody.json.done 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''' curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
} }
@@ -690,6 +698,10 @@ pipeline {
] ]
]) { ]) {
sh '''#! /bin/bash sh '''#! /bin/bash
set -e
TEMPDIR=$(mktemp -d)
docker pull linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest
docker pull lsiodev/readme-sync docker pull lsiodev/readme-sync
docker run --rm=true \ docker run --rm=true \
-e DOCKERHUB_USERNAME=$DOCKERUSER \ -e DOCKERHUB_USERNAME=$DOCKERUSER \
@@ -697,7 +709,9 @@ pipeline {
-e GIT_REPOSITORY=${LS_USER}/${LS_REPO} \ -e GIT_REPOSITORY=${LS_USER}/${LS_REPO} \
-e DOCKER_REPOSITORY=${IMAGE} \ -e DOCKER_REPOSITORY=${IMAGE} \
-e GIT_BRANCH=master \ -e GIT_BRANCH=master \
lsiodev/readme-sync bash -c 'node sync' ''' -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \
lsiodev/readme-sync bash -c 'node sync'
rm -Rf ${TEMPDIR} '''
} }
} }
} }

View File

@@ -32,7 +32,7 @@ Find us at:
[![MicroBadger Layers](https://img.shields.io/microbadger/layers/linuxserver/code-server.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge)](https://microbadger.com/images/linuxserver/code-server "Get your own version badge on microbadger.com") [![MicroBadger Layers](https://img.shields.io/microbadger/layers/linuxserver/code-server.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge)](https://microbadger.com/images/linuxserver/code-server "Get your own version badge on microbadger.com")
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/code-server.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/code-server) [![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/code-server.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/code-server)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/code-server.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/code-server) [![Docker Stars](https://img.shields.io/docker/stars/linuxserver/code-server.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/code-server)
[![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-code-server%2Fjob%2Fdevelopment%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/development/) [![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-code-server%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/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%2Flsio-ci.ams3.digitaloceanspaces.com%2Flinuxserver%2Fcode-server%2Flatest%2Fci-status.yml)](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/code-server/latest/index.html) [![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%2Flsio-ci.ams3.digitaloceanspaces.com%2Flinuxserver%2Fcode-server%2Flatest%2Fci-status.yml)](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/code-server/latest/index.html)
[Code-server](https://coder.com) is VS Code running on a remote server, accessible through the browser. [Code-server](https://coder.com) is VS Code running on a remote server, accessible through the browser.
@@ -43,7 +43,7 @@ Find us at:
- All intensive computation runs on your server. - All intensive computation runs on your server.
- You're no longer running excess instances of Chrome. - You're no longer running excess instances of Chrome.
[![code-server](https://github.com/cdr/code-server/raw/master/doc/assets/cli.png)](https://coder.com) [![code-server](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/code-server-banner.png)](https://coder.com)
## Supported Architectures ## Supported Architectures
@@ -56,6 +56,8 @@ The architectures supported by this image are:
| Architecture | Tag | | Architecture | Tag |
| :----: | --- | | :----: | --- |
| x86-64 | amd64-latest | | x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
## Version Tags ## Version Tags
@@ -80,6 +82,7 @@ docker create \
-e TZ=Europe/London \ -e TZ=Europe/London \
-e PASSWORD=password `#optional` \ -e PASSWORD=password `#optional` \
-e SUDO_PASSWORD=password `#optional` \ -e SUDO_PASSWORD=password `#optional` \
-e PROXY_DOMAIN=code-server.my.domain `#optional` \
-p 8443:8443 \ -p 8443:8443 \
-v /path/to/appdata/config:/config \ -v /path/to/appdata/config:/config \
--restart unless-stopped \ --restart unless-stopped \
@@ -104,6 +107,7 @@ services:
- TZ=Europe/London - TZ=Europe/London
- PASSWORD=password #optional - PASSWORD=password #optional
- SUDO_PASSWORD=password #optional - SUDO_PASSWORD=password #optional
- PROXY_DOMAIN=code-server.my.domain #optional
volumes: volumes:
- /path/to/appdata/config:/config - /path/to/appdata/config:/config
ports: ports:
@@ -123,6 +127,7 @@ Container images are configured using parameters passed at runtime (such as thos
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London | | `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London |
| `-e PASSWORD=password` | Optional web gui password, if not provided, there will be no auth. | | `-e PASSWORD=password` | Optional web gui password, if not provided, there will be no auth. |
| `-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=password` | If this optional variable is set, user will have sudo access in the code-server terminal with the specified password. |
| `-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/doc/FAQ.md#sub-domains) |
| `-v /config` | Contains all relevant configuration files. | | `-v /config` | Contains all relevant configuration files. |
## Environment variables from files (Docker secrets) ## Environment variables from files (Docker secrets)
@@ -238,7 +243,15 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **05.03.20:** - Updates for v3.0.0 (structural changes). * **29.05.20:** - Add --domain-proxy support.
* **21.05.20:** - Shrink images, install via yarn, fix arm32v7 build.
* **18.05.20:** - Switch to multi-arch images, install via npm.
* **29.04.20:** - Update start arguments.
* **01.04.20:** - Structural changes required for v3.
* **17.01.20:** - Fix artifact url retrieval from github.
* **24.10.19:** - Upgrade to v2 builds.
* **28.09.19:** - Update project logo.
* **21.09.19:** - Add development builds/tag.
* **09.07.19:** - Add optional sudo access. * **09.07.19:** - Add optional sudo access.
* **01.07.19:** - Add nano. * **01.07.19:** - Add nano.
* **24.06.19:** - Initial Release. * **24.06.19:** - Initial Release.

View File

@@ -2,13 +2,14 @@
# jenkins variables # jenkins variables
project_name: docker-code-server project_name: docker-code-server
external_type: custom_json external_type: github_stable
release_type: prerelease release_type: stable
release_tag: development release_tag: latest
ls_branch: development ls_branch: master
repo_vars: repo_vars:
- JSON_URL = 'https://api.github.com/repos/cdr/code-server/releases' - EXT_GIT_BRANCH = 'master'
- JSON_PATH = 'first(.[] | select(.prerelease == true)) | .tag_name' - EXT_USER = 'cdr'
- EXT_REPO = 'code-server'
- CONTAINER_NAME = 'code-server' - CONTAINER_NAME = 'code-server'
- BUILD_VERSION_ARG = 'CODE_RELEASE' - BUILD_VERSION_ARG = 'CODE_RELEASE'
- LS_USER = 'linuxserver' - LS_USER = 'linuxserver'
@@ -17,7 +18,7 @@ repo_vars:
- DEV_DOCKERHUB_IMAGE = 'lsiodev/code-server' - DEV_DOCKERHUB_IMAGE = 'lsiodev/code-server'
- PR_DOCKERHUB_IMAGE = 'lspipepr/code-server' - PR_DOCKERHUB_IMAGE = 'lspipepr/code-server'
- DIST_IMAGE = 'ubuntu' - DIST_IMAGE = 'ubuntu'
- MULTIARCH='false' - MULTIARCH='true'
- CI='true' - CI='true'
- CI_WEB='true' - CI_WEB='true'
- CI_PORT='8443' - CI_PORT='8443'

View File

@@ -1,26 +1,37 @@
adduser3.116ubuntu1 adduser3.116ubuntu1
apt1.6.12ubuntu0.1 apt1.6.12ubuntu0.1
apt-utils1.6.12ubuntu0.1 apt-utils1.6.12ubuntu0.1
base-files10.1ubuntu2.8 base-files10.1ubuntu2.9
base-passwd3.5.44 base-passwd3.5.44
bash4.4.18-2ubuntu1.2 bash4.4.18-2ubuntu1.2
bsdutils1:2.31.1-0.4ubuntu3.6 bsdutils1:2.31.1-0.4ubuntu3.6
bzip21.0.6-8.1ubuntu0.2 bzip21.0.6-8.1ubuntu0.2
ca-certificates20190110~18.04.1 ca-certificates20190110~18.04.1
coreutils8.28-1ubuntu1 coreutils8.28-1ubuntu1
curl7.58.0-2ubuntu3.9 curl7.58.0-2ubuntu3.10
dash0.5.8-2.10 dash0.5.8-2.10
debconf1.5.66ubuntu1 debconf1.5.66ubuntu1
debianutils4.8.4 debianutils4.8.4
diffutils1:3.6-1 diffutils1:3.6-1
dirmngr2.2.4-1ubuntu1.2
dpkg1.19.0.5ubuntu2.3 dpkg1.19.0.5ubuntu2.3
e2fsprogs1.44.1-1ubuntu1.3 e2fsprogs1.44.1-1ubuntu1.3
fdisk2.31.1-0.4ubuntu3.6 fdisk2.31.1-0.4ubuntu3.6
file1:5.32-2ubuntu0.4
findutils4.6.0+git+20170828-2 findutils4.6.0+git+20170828-2
gcc-8-base8.4.0-1ubuntu1~18.04 gcc-8-base8.4.0-1ubuntu1~18.04
git1:2.17.1-1ubuntu0.7 git1:2.17.1-1ubuntu0.7
git-man1:2.17.1-1ubuntu0.7 git-man1:2.17.1-1ubuntu0.7
gnupg2.2.4-1ubuntu1.2
gnupg-l10n2.2.4-1ubuntu1.2
gnupg-utils2.2.4-1ubuntu1.2
gpg2.2.4-1ubuntu1.2
gpg-agent2.2.4-1ubuntu1.2
gpgconf2.2.4-1ubuntu1.2
gpgsm2.2.4-1ubuntu1.2
gpgv2.2.4-1ubuntu1.2 gpgv2.2.4-1ubuntu1.2
gpg-wks-client2.2.4-1ubuntu1.2
gpg-wks-server2.2.4-1ubuntu1.2
grep3.1-2build1 grep3.1-2build1
gzip1.6-5ubuntu1 gzip1.6-5ubuntu1
hostname3.20 hostname3.20
@@ -32,18 +43,19 @@ libacl12.2.52-3build1
libapt-inst2.01.6.12ubuntu0.1 libapt-inst2.01.6.12ubuntu0.1
libapt-pkg5.01.6.12ubuntu0.1 libapt-pkg5.01.6.12ubuntu0.1
libasn1-8-heimdal7.5.0+dfsg-1 libasn1-8-heimdal7.5.0+dfsg-1
libassuan02.5.1-2
libattr11:2.4.47-2build1 libattr11:2.4.47-2build1
libaudit11:2.8.2-1ubuntu1 libaudit11:2.8.2-1ubuntu1
libaudit-common1:2.8.2-1ubuntu1 libaudit-common1:2.8.2-1ubuntu1
libblkid12.31.1-0.4ubuntu3.6 libblkid12.31.1-0.4ubuntu3.6
libbsd00.8.7-1ubuntu0.1 libbsd00.8.7-1ubuntu0.1
libbz2-1.01.0.6-8.1ubuntu0.2 libbz2-1.01.0.6-8.1ubuntu0.2
libc62.27-3ubuntu1 libc62.27-3ubuntu1.2
libcap-ng00.7.7-3.1 libcap-ng00.7.7-3.1
libc-bin2.27-3ubuntu1 libc-bin2.27-3ubuntu1.2
libcom-err21.44.1-1ubuntu1.3 libcom-err21.44.1-1ubuntu1.3
libcurl3-gnutls7.58.0-2ubuntu3.9 libcurl3-gnutls7.58.0-2ubuntu3.10
libcurl47.58.0-2ubuntu3.9 libcurl47.58.0-2ubuntu3.10
libdb5.35.3.28-13.1ubuntu1.1 libdb5.35.3.28-13.1ubuntu1.1
libdebconfclient00.213ubuntu1 libdebconfclient00.213ubuntu1
libedit23.1-20170329-1 libedit23.1-20170329-1
@@ -57,7 +69,7 @@ libgcrypt201.8.1-4ubuntu1.2
libgdbm51.14.1-6 libgdbm51.14.1-6
libgdbm-compat41.14.1-6 libgdbm-compat41.14.1-6
libgmp102:6.1.2+dfsg-2 libgmp102:6.1.2+dfsg-2
libgnutls303.5.18-1ubuntu1.3 libgnutls303.5.18-1ubuntu1.4
libgpg-error01.27-6 libgpg-error01.27-6
libgssapi3-heimdal7.5.0+dfsg-1 libgssapi3-heimdal7.5.0+dfsg-1
libgssapi-krb5-21.16-2ubuntu0.1 libgssapi-krb5-21.16-2ubuntu0.1
@@ -73,15 +85,19 @@ libkeyutils11.5.9-9.2ubuntu2
libkrb5-26-heimdal7.5.0+dfsg-1 libkrb5-26-heimdal7.5.0+dfsg-1
libkrb5-31.16-2ubuntu0.1 libkrb5-31.16-2ubuntu0.1
libkrb5support01.16-2ubuntu0.1 libkrb5support01.16-2ubuntu0.1
libldap-2.4-22.4.45+dfsg-1ubuntu1.5 libksba81.3.5-2
libldap-common2.4.45+dfsg-1ubuntu1.5 libldap-2.4-22.4.45+dfsg-1ubuntu1.6
libldap-common2.4.45+dfsg-1ubuntu1.6
liblz4-10.0~r131-2ubuntu3 liblz4-10.0~r131-2ubuntu3
liblzma55.2.2-1.3 liblzma55.2.2-1.3
libmagic11:5.32-2ubuntu0.4
libmagic-mgc1:5.32-2ubuntu0.4
libmount12.31.1-0.4ubuntu3.6 libmount12.31.1-0.4ubuntu3.6
libncurses56.1-1ubuntu1.18.04 libncurses56.1-1ubuntu1.18.04
libncursesw56.1-1ubuntu1.18.04 libncursesw56.1-1ubuntu1.18.04
libnettle63.4-1 libnettle63.4-1
libnghttp2-141.30.0-1ubuntu1 libnghttp2-141.30.0-1ubuntu1
libnpth01.5-3
libonig46.7.0-1 libonig46.7.0-1
libp11-kit00.23.9-2 libp11-kit00.23.9-2
libpam0g1.1.8-3.6ubuntu2.18.04.1 libpam0g1.1.8-3.6ubuntu2.18.04.1
@@ -92,12 +108,16 @@ libpcre32:8.39-9
libperl5.265.26.1-6ubuntu0.3 libperl5.265.26.1-6ubuntu0.3
libprocps62:3.3.12-3ubuntu1.2 libprocps62:3.3.12-3ubuntu1.2
libpsl50.19.1-5build1 libpsl50.19.1-5build1
libpython2.7-minimal2.7.17-1~18.04ubuntu1.1
libpython2.7-stdlib2.7.17-1~18.04ubuntu1.1
libpython-stdlib2.7.15~rc1-1
libreadline77.0-3
libroken18-heimdal7.5.0+dfsg-1 libroken18-heimdal7.5.0+dfsg-1
librtmp12.4+20151223.gitfa8646d.1-1 librtmp12.4+20151223.gitfa8646d.1-1
libsasl2-22.1.27~101-g0780600+dfsg-3ubuntu2.1 libsasl2-22.1.27~101-g0780600+dfsg-3ubuntu2.1
libsasl2-modules2.1.27~101-g0780600+dfsg-3ubuntu2.1 libsasl2-modules2.1.27~101-g0780600+dfsg-3ubuntu2.1
libsasl2-modules-db2.1.27~101-g0780600+dfsg-3ubuntu2.1 libsasl2-modules-db2.1.27~101-g0780600+dfsg-3ubuntu2.1
libseccomp22.4.1-0ubuntu0.18.04.2 libseccomp22.4.3-1ubuntu3.18.04.3
libselinux12.7-2build2 libselinux12.7-2build2
libsemanage12.7-2build2 libsemanage12.7-2build2
libsemanage-common2.7-2build2 libsemanage-common2.7-2build2
@@ -108,32 +128,34 @@ libss21.44.1-1ubuntu1.3
libssl1.0.01.0.2n-1ubuntu5.3 libssl1.0.01.0.2n-1ubuntu5.3
libssl1.11.1.1-1ubuntu2.1~18.04.6 libssl1.11.1.1-1ubuntu2.1~18.04.6
libstdc++68.4.0-1ubuntu1~18.04 libstdc++68.4.0-1ubuntu1~18.04
libsystemd0237-3ubuntu10.41 libsystemd0237-3ubuntu10.42
libtasn1-64.13-2 libtasn1-64.13-2
libtinfo56.1-1ubuntu1.18.04 libtinfo56.1-1ubuntu1.18.04
libudev1237-3ubuntu10.41 libudev1237-3ubuntu10.42
libunistring20.9.9-0ubuntu2 libunistring20.9.9-0ubuntu2
libuuid12.31.1-0.4ubuntu3.6 libuuid12.31.1-0.4ubuntu3.6
libwind0-heimdal7.5.0+dfsg-1 libwind0-heimdal7.5.0+dfsg-1
libx11-62:1.6.4-3ubuntu0.2 libx11-62:1.6.4-3ubuntu0.2
libx11-data2:1.6.4-3ubuntu0.2 libx11-data2:1.6.4-3ubuntu0.2
libxau61:1.0.8-1 libxau61:1.0.8-1ubuntu1
libxcb11.13-2~ubuntu18.04 libxcb11.13-2~ubuntu18.04
libxdmcp61:1.1.2-3 libxdmcp61:1.1.2-3
libxext62:1.3.3-1 libxext62:1.3.3-1
libxmuu12:1.1.2-2 libxmuu12:1.1.2-2
libzstd11.3.3+dfsg-2ubuntu1.1 libzstd11.3.3+dfsg-2ubuntu1.1
locales2.27-3ubuntu1 locales2.27-3ubuntu1.2
login1:4.5-1ubuntu2 login1:4.5-1ubuntu2
lsb-base9.20170808ubuntu1 lsb-base9.20170808ubuntu1
mawk1.3.3-17ubuntu3 mawk1.3.3-17ubuntu3
mime-support3.60ubuntu1
mount2.31.1-0.4ubuntu3.6 mount2.31.1-0.4ubuntu3.6
multiarch-support2.27-3ubuntu1 multiarch-support2.27-3ubuntu1.2
nano2.9.3-2 nano2.9.3-2
ncurses-base6.1-1ubuntu1.18.04 ncurses-base6.1-1ubuntu1.18.04
ncurses-bin6.1-1ubuntu1.18.04 ncurses-bin6.1-1ubuntu1.18.04
netbase5.4 netbase5.4
net-tools1.60+git20161116.90da8a0-1ubuntu1 net-tools1.60+git20161116.90da8a0-1ubuntu1
nodejs12.18.3-1nodesource1
openssh-client1:7.6p1-4ubuntu0.3 openssh-client1:7.6p1-4ubuntu0.3
openssl1.1.1-1ubuntu2.1~18.04.6 openssl1.1.1-1ubuntu2.1~18.04.6
passwd1:4.5-1ubuntu2 passwd1:4.5-1ubuntu2
@@ -141,8 +163,14 @@ patch2.7.6-2ubuntu1.1
perl5.26.1-6ubuntu0.3 perl5.26.1-6ubuntu0.3
perl-base5.26.1-6ubuntu0.3 perl-base5.26.1-6ubuntu0.3
perl-modules-5.265.26.1-6ubuntu0.3 perl-modules-5.265.26.1-6ubuntu0.3
pinentry-curses1.1.0-1
procps2:3.3.12-3ubuntu1.2 procps2:3.3.12-3ubuntu1.2
publicsuffix20180223.1310-1 publicsuffix20180223.1310-1
python2.7.15~rc1-1
python2.72.7.17-1~18.04ubuntu1.1
python2.7-minimal2.7.17-1~18.04ubuntu1.1
python-minimal2.7.15~rc1-1
readline-common7.0-3
sed4.4-2 sed4.4-2
sensible-utils0.0.12 sensible-utils0.0.12
sudo1.8.21p2-3ubuntu1.2 sudo1.8.21p2-3ubuntu1.2
@@ -152,4 +180,6 @@ tzdata2020a-0ubuntu0.18.04
ubuntu-keyring2018.09.18.1~18.04.0 ubuntu-keyring2018.09.18.1~18.04.0
util-linux2.31.1-0.4ubuntu3.6 util-linux2.31.1-0.4ubuntu3.6
xauth1:1.0.10-1 xauth1:1.0.10-1
xz-utils5.2.2-1.3
yarn1.22.5-1
zlib1g1:1.2.11.dfsg-0ubuntu2 zlib1g1:1.2.11.dfsg-0ubuntu2

View File

@@ -3,7 +3,7 @@
# project information # project information
project_name: code-server project_name: code-server
project_url: "https://coder.com" project_url: "https://coder.com"
project_logo: "https://github.com/cdr/code-server/raw/master/doc/assets/cli.png" project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/code-server-banner.png"
project_blurb: "[{{ project_name|capitalize }}]({{ project_url }}) is VS Code running on a remote server, accessible through the browser. project_blurb: "[{{ project_name|capitalize }}]({{ project_url }}) is VS Code running on a remote server, accessible through the browser.
- Code on your Chromebook, tablet, and laptop with a consistent dev environment. - Code on your Chromebook, tablet, and laptop with a consistent dev environment.
@@ -22,6 +22,8 @@ project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_
# supported architectures # supported architectures
available_architectures: available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"} - { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
# development version # development version
development_versions: true development_versions: true
@@ -47,6 +49,7 @@ opt_param_usage_include_env: true
opt_param_env_vars: opt_param_env_vars:
- { env_var: "PASSWORD", env_value: "password", desc: "Optional web gui password, if not provided, there will be no auth."} - { env_var: "PASSWORD", env_value: "password", desc: "Optional web gui password, if not provided, there will be no auth."}
- { 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", 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: "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/doc/FAQ.md#sub-domains)" }
optional_block_1: false optional_block_1: false
optional_block_1_items: "" optional_block_1_items: ""
@@ -65,7 +68,15 @@ app_setup_block: |
# changelog # changelog
changelogs: changelogs:
- { date: "05.03.20:", desc: "Updates for v3.0.0 (structural changes)." } - { date: "29.05.20:", desc: "Add --domain-proxy support."}
- { date: "21.05.20:", desc: "Shrink images, install via yarn, fix arm32v7 build." }
- { date: "18.05.20:", desc: "Switch to multi-arch images, install via npm." }
- { date: "29.04.20:", desc: "Update start arguments." }
- { date: "01.04.20:", desc: "Structural changes required for v3." }
- { date: "17.01.20:", desc: "Fix artifact url retrieval from github." }
- { date: "24.10.19:", desc: "Upgrade to v2 builds." }
- { date: "28.09.19:", desc: "Update project logo." }
- { date: "21.09.19:", desc: "Add development builds/tag." }
- { date: "09.07.19:", desc: "Add optional sudo access." } - { date: "09.07.19:", desc: "Add optional sudo access." }
- { date: "01.07.19:", desc: "Add nano." } - { date: "01.07.19:", desc: "Add nano." }
- { date: "24.06.19:", desc: "Initial Release." } - { date: "24.06.19:", desc: "Initial Release." }

View File

@@ -1,20 +1,25 @@
#!/usr/bin/with-contenv bash #!/usr/bin/with-contenv bash
if [ -n "${PASSWORD}" ]; then if [ -n "${PASSWORD}" ]; then
AUTH="password" AUTH="password"
else else
AUTH="none" AUTH="none"
echo "starting with no password" echo "starting with no password"
fi
if [ -z ${PROXY_DOMAIN+x} ]; then
PROXY_DOMAIN_ARG=""
else
PROXY_DOMAIN_ARG="--proxy-domain=${PROXY_DOMAIN}"
fi fi
exec \ exec \
s6-setuidgid abc \ s6-setuidgid abc \
/app/code-server/code-server \ /usr/local/bin/code-server \
--host 0.0.0.0 \ --bind-addr 0.0.0.0:8443 \
--port 8443 \
--user-data-dir /config/data \ --user-data-dir /config/data \
--extensions-dir /config/extensions \ --extensions-dir /config/extensions \
--disable-telemetry \ --disable-telemetry \
--disable-updates \ --auth "${AUTH}" \
--auth ${AUTH} \ "${PROXY_DOMAIN_ARG}" \
/config/workspace /config/workspace