Compare commits

..

60 Commits

Author SHA1 Message Date
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
9 changed files with 310 additions and 86 deletions

View File

@@ -11,28 +11,50 @@ LABEL maintainer="aptalca"
ENV HOME="/config"
RUN \
echo "**** install dependencies ****" && \
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 \
sudo && \
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" \
| jq -r 'first(.[] | select(.prerelease == true)) | .tag_name'); \
CODE_RELEASE=$(curl -sX GET "https://api.github.com/repos/cdr/code-server/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
CODE_URL=$(curl -sX GET "https://api.github.com/repos/cdr/code-server/releases/tags/${CODE_RELEASE}" \
| jq -r '.assets[] | select(.browser_download_url | contains("linux-x86_64")) | .browser_download_url') && \
mkdir -p /app/code-server && \
curl -o \
/tmp/code.tar.gz -L \
"${CODE_URL}" && \
tar xzf /tmp/code.tar.gz -C \
/app/code-server --strip-components=1 && \
CODE_VERSION=$(echo "$CODE_RELEASE" | awk '{print substr($1,2); }') && \
yarn --production global add code-server@"$CODE_VERSION" && \
yarn cache clean && \
ln -s /node_modules/.bin/code-server /usr/bin/code-server && \
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/* \

67
Dockerfile.aarch64 Normal file
View File

@@ -0,0 +1,67 @@
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 global add code-server@"$CODE_VERSION" && \
yarn cache clean && \
ln -s /node_modules/.bin/code-server /usr/bin/code-server && \
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

67
Dockerfile.armhf Normal file
View File

@@ -0,0 +1,67 @@
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 global add code-server@"$CODE_VERSION" && \
yarn cache clean && \
ln -s /node_modules/.bin/code-server /usr/bin/code-server && \
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

104
Jenkinsfile vendored
View File

@@ -16,8 +16,9 @@ pipeline {
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
JSON_URL = 'https://api.github.com/repos/cdr/code-server/releases'
JSON_PATH = 'first(.[] | select(.prerelease == true)) | .tag_name'
EXT_GIT_BRANCH = 'master'
EXT_USER = 'cdr'
EXT_REPO = 'code-server'
CONTAINER_NAME = 'code-server'
BUILD_VERSION_ARG = 'CODE_RELEASE'
LS_USER = 'linuxserver'
@@ -26,7 +27,7 @@ pipeline {
DEV_DOCKERHUB_IMAGE = 'lsiodev/code-server'
PR_DOCKERHUB_IMAGE = 'lspipepr/code-server'
DIST_IMAGE = 'ubuntu'
MULTIARCH='false'
MULTIARCH='true'
CI='true'
CI_WEB='true'
CI_PORT='8443'
@@ -43,7 +44,7 @@ pipeline {
script{
env.EXIT_STATUS = ''
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()
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' ''',
@@ -100,14 +101,21 @@ pipeline {
/* ########################
External Release Tagging
######################## */
// If this is a custom json endpoint parse the return to get external tag
stage("Set ENV custom_json"){
// If this is a stable github release use the latest endpoint from github to determine the ext tag
stage("Set ENV github_stable"){
steps{
script{
env.EXT_RELEASE = sh(
script: '''curl -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()
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"){
when {
branch "development"
branch "master"
environment name: 'CHANGE_ID', value: ''
}
steps {
@@ -144,7 +152,7 @@ pipeline {
// If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){
when {
not {branch "development"}
not {branch "master"}
environment name: 'CHANGE_ID', value: ''
}
steps {
@@ -215,7 +223,7 @@ pipeline {
// Use helper containers to render templated files
stage('Update-Templates') {
when {
branch "development"
branch "master"
environment name: 'CHANGE_ID', value: ''
expression {
env.CONTAINER_NAME != null
@@ -226,7 +234,7 @@ pipeline {
set -e
TEMPDIR=$(mktemp -d)
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)
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
@@ -234,7 +242,7 @@ pipeline {
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f development
git checkout -f master
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/
@@ -266,7 +274,7 @@ pipeline {
// Exit the build if the Templated files were just updated
stage('Template-exit') {
when {
branch "development"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true'
expression {
@@ -389,7 +397,7 @@ pipeline {
// Take the image we just built and dump package versions for comparison
stage('Update-packages') {
when {
branch "development"
branch "master"
environment name: 'CHANGE_ID', 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"
if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f development
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
cd ${TEMPDIR}/${LS_REPO}/
wait
@@ -441,7 +449,7 @@ pipeline {
// Exit the build if the package file was just updated
stage('PACKAGE-exit') {
when {
branch "development"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true'
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
stage('PACKAGECHECK-exit') {
when {
branch "development"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: ''
@@ -544,8 +552,8 @@ pipeline {
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:development
docker push ${PUSHIMAGE}:development
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
docker push ${PUSHIMAGE}:latest
docker push ${PUSHIMAGE}:${META_TAG}
done
'''
@@ -554,7 +562,7 @@ pipeline {
for DELETEIMAGE in "${GITHUBIMAGE}" "{GITLABIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:${META_TAG} \
${DELETEIMAGE}:development || :
${DELETEIMAGE}:latest || :
done
'''
}
@@ -591,51 +599,51 @@ pipeline {
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-development
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-development
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-development
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:amd64-development
docker push ${MANIFESTIMAGE}:arm32v7-development
docker push ${MANIFESTIMAGE}:arm64v8-development
docker manifest push --purge ${MANIFESTIMAGE}:development || :
docker manifest create ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:amd64-development ${MANIFESTIMAGE}:arm32v7-development ${MANIFESTIMAGE}:arm64v8-development
docker manifest annotate ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:arm32v7-development --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:arm64v8-development --os linux --arch arm64 --variant v8
docker push ${MANIFESTIMAGE}:amd64-latest
docker push ${MANIFESTIMAGE}:arm32v7-latest
docker push ${MANIFESTIMAGE}:arm64v8-latest
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
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}: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}: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}
done
docker tag ${IMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${GITHUBIMAGE}:arm32v7-${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}:arm32v7-${META_TAG} ${GITHUBIMAGE}:arm32v7-development
docker tag ${GITHUBIMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-development
docker tag ${GITHUBIMAGE}:arm32v7-${META_TAG} ${GITHUBIMAGE}:arm32v7-latest
docker tag ${GITHUBIMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-latest
docker push ${GITHUBIMAGE}:amd64-${META_TAG}
docker push ${GITHUBIMAGE}:arm32v7-${META_TAG}
docker push ${GITHUBIMAGE}:arm64v8-${META_TAG}
docker push ${GITHUBIMAGE}:development
docker push ${GITHUBIMAGE}:latest
docker push ${GITHUBIMAGE}:${META_TAG}
docker push ${GITHUBIMAGE}:arm32v7-development
docker push ${GITHUBIMAGE}:arm64v8-development
docker push ${GITHUBIMAGE}:arm32v7-latest
docker push ${GITHUBIMAGE}:arm64v8-latest
'''
}
sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-development \
${DELETEIMAGE}:amd64-latest \
${DELETEIMAGE}:arm32v7-${META_TAG} \
${DELETEIMAGE}:arm32v7-development \
${DELETEIMAGE}:arm32v7-latest \
${DELETEIMAGE}:arm64v8-${META_TAG} \
${DELETEIMAGE}:arm64v8-development || :
${DELETEIMAGE}:arm64v8-latest || :
done
docker rmi \
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
@@ -647,7 +655,7 @@ pipeline {
// If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') {
when {
branch "development"
branch "master"
expression {
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 \
-d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
"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",\
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag"
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}'",\
"target_commitish": "development",\
"target_commitish": "master",\
"name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**Remote Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": true}' >> releasebody.json
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**'${EXT_REPO}' Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": false}' >> releasebody.json
paste -d'\\0' start releasebody.json > releasebody.json.done
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
}

View File

@@ -32,8 +32,8 @@ 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")
[![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)
[![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/)
[![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)
[![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%2Flspipepr%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 on your Chromebook, tablet, and laptop with a consistent dev environment.
@@ -43,7 +43,7 @@ Find us at:
- All intensive computation runs on your server.
- 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/cdr/code-server/master/doc/assets/code-server.gif)](https://coder.com)
## Supported Architectures
@@ -56,6 +56,8 @@ The architectures supported by this image are:
| Architecture | Tag |
| :----: | --- |
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
## Version Tags
@@ -80,6 +82,7 @@ docker create \
-e TZ=Europe/London \
-e PASSWORD=password `#optional` \
-e SUDO_PASSWORD=password `#optional` \
-e PROXY_DOMAIN=code-server.my.domain `#optional` \
-p 8443:8443 \
-v /path/to/appdata/config:/config \
--restart unless-stopped \
@@ -104,6 +107,7 @@ services:
- TZ=Europe/London
- PASSWORD=password #optional
- SUDO_PASSWORD=password #optional
- PROXY_DOMAIN=code-server.my.domain #optional
volumes:
- /path/to/appdata/config:/config
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 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 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. |
## Environment variables from files (Docker secrets)
@@ -238,7 +243,15 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## 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.
* **01.07.19:** - Add nano.
* **24.06.19:** - Initial Release.

View File

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

View File

@@ -6,21 +6,32 @@ base-passwd3.5.44
bash4.4.18-2ubuntu1.2
bsdutils1:2.31.1-0.4ubuntu3.6
bzip21.0.6-8.1ubuntu0.2
ca-certificates20190110~18.04.1
ca-certificates20180409
coreutils8.28-1ubuntu1
curl7.58.0-2ubuntu3.9
curl7.58.0-2ubuntu3.8
dash0.5.8-2.10
debconf1.5.66ubuntu1
debianutils4.8.4
diffutils1:3.6-1
dirmngr2.2.4-1ubuntu1.2
dpkg1.19.0.5ubuntu2.3
e2fsprogs1.44.1-1ubuntu1.3
fdisk2.31.1-0.4ubuntu3.6
file1:5.32-2ubuntu0.4
findutils4.6.0+git+20170828-2
gcc-8-base8.4.0-1ubuntu1~18.04
git1: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
gpg-wks-client2.2.4-1ubuntu1.2
gpg-wks-server2.2.4-1ubuntu1.2
grep3.1-2build1
gzip1.6-5ubuntu1
hostname3.20
@@ -32,6 +43,7 @@ libacl12.2.52-3build1
libapt-inst2.01.6.12ubuntu0.1
libapt-pkg5.01.6.12ubuntu0.1
libasn1-8-heimdal7.5.0+dfsg-1
libassuan02.5.1-2
libattr11:2.4.47-2build1
libaudit11:2.8.2-1ubuntu1
libaudit-common1:2.8.2-1ubuntu1
@@ -42,8 +54,8 @@ libc62.27-3ubuntu1
libcap-ng00.7.7-3.1
libc-bin2.27-3ubuntu1
libcom-err21.44.1-1ubuntu1.3
libcurl3-gnutls7.58.0-2ubuntu3.9
libcurl47.58.0-2ubuntu3.9
libcurl3-gnutls7.58.0-2ubuntu3.8
libcurl47.58.0-2ubuntu3.8
libdb5.35.3.28-13.1ubuntu1.1
libdebconfclient00.213ubuntu1
libedit23.1-20170329-1
@@ -73,15 +85,19 @@ libkeyutils11.5.9-9.2ubuntu2
libkrb5-26-heimdal7.5.0+dfsg-1
libkrb5-31.16-2ubuntu0.1
libkrb5support01.16-2ubuntu0.1
libksba81.3.5-2
libldap-2.4-22.4.45+dfsg-1ubuntu1.5
libldap-common2.4.45+dfsg-1ubuntu1.5
liblz4-10.0~r131-2ubuntu3
liblzma55.2.2-1.3
libmagic11:5.32-2ubuntu0.4
libmagic-mgc1:5.32-2ubuntu0.4
libmount12.31.1-0.4ubuntu3.6
libncurses56.1-1ubuntu1.18.04
libncursesw56.1-1ubuntu1.18.04
libnettle63.4-1
libnghttp2-141.30.0-1ubuntu1
libnpth01.5-3
libonig46.7.0-1
libp11-kit00.23.9-2
libpam0g1.1.8-3.6ubuntu2.18.04.1
@@ -92,6 +108,10 @@ libpcre32:8.39-9
libperl5.265.26.1-6ubuntu0.3
libprocps62:3.3.12-3ubuntu1.2
libpsl50.19.1-5build1
libpython2.7-minimal2.7.17-1~18.04ubuntu1
libpython2.7-stdlib2.7.17-1~18.04ubuntu1
libpython-stdlib2.7.15~rc1-1
libreadline77.0-3
libroken18-heimdal7.5.0+dfsg-1
librtmp12.4+20151223.gitfa8646d.1-1
libsasl2-22.1.27~101-g0780600+dfsg-3ubuntu2.1
@@ -103,7 +123,7 @@ libsemanage12.7-2build2
libsemanage-common2.7-2build2
libsepol12.7-1
libsmartcols12.31.1-0.4ubuntu3.6
libsqlite3-03.22.0-1ubuntu0.4
libsqlite3-03.22.0-1ubuntu0.3
libss21.44.1-1ubuntu1.3
libssl1.0.01.0.2n-1ubuntu5.3
libssl1.11.1.1-1ubuntu2.1~18.04.6
@@ -127,6 +147,7 @@ locales2.27-3ubuntu1
login1:4.5-1ubuntu2
lsb-base9.20170808ubuntu1
mawk1.3.3-17ubuntu3
mime-support3.60ubuntu1
mount2.31.1-0.4ubuntu3.6
multiarch-support2.27-3ubuntu1
nano2.9.3-2
@@ -134,6 +155,7 @@ ncurses-base6.1-1ubuntu1.18.04
ncurses-bin6.1-1ubuntu1.18.04
netbase5.4
net-tools1.60+git20161116.90da8a0-1ubuntu1
nodejs12.17.0-1nodesource1
openssh-client1:7.6p1-4ubuntu0.3
openssl1.1.1-1ubuntu2.1~18.04.6
passwd1:4.5-1ubuntu2
@@ -141,8 +163,14 @@ patch2.7.6-2ubuntu1.1
perl5.26.1-6ubuntu0.3
perl-base5.26.1-6ubuntu0.3
perl-modules-5.265.26.1-6ubuntu0.3
pinentry-curses1.1.0-1
procps2:3.3.12-3ubuntu1.2
publicsuffix20180223.1310-1
python2.7.15~rc1-1
python2.72.7.17-1~18.04ubuntu1
python2.7-minimal2.7.17-1~18.04ubuntu1
python-minimal2.7.15~rc1-1
readline-common7.0-3
sed4.4-2
sensible-utils0.0.12
sudo1.8.21p2-3ubuntu1.2
@@ -152,4 +180,6 @@ tzdata2020a-0ubuntu0.18.04
ubuntu-keyring2018.09.18.1~18.04.0
util-linux2.31.1-0.4ubuntu3.6
xauth1:1.0.10-1
xz-utils5.2.2-1.3
yarn1.22.4-1
zlib1g1:1.2.11.dfsg-0ubuntu2

View File

@@ -3,7 +3,7 @@
# project information
project_name: code-server
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/cdr/code-server/master/doc/assets/code-server.gif"
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.
@@ -22,6 +22,8 @@ project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_
# supported architectures
available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
# development version
development_versions: true
@@ -47,6 +49,7 @@ opt_param_usage_include_env: true
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: "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_items: ""
@@ -65,7 +68,15 @@ app_setup_block: |
# changelog
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: "01.07.19:", desc: "Add nano." }
- { date: "24.06.19:", desc: "Initial Release." }

View File

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