diff --git a/Dockerfile b/Dockerfile index d705f59..c99f4d5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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/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/* \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 new file mode 100644 index 0000000..36f065c --- /dev/null +++ b/Dockerfile.aarch64 @@ -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 diff --git a/Dockerfile.armhf b/Dockerfile.armhf new file mode 100644 index 0000000..d44af02 --- /dev/null +++ b/Dockerfile.armhf @@ -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 diff --git a/Jenkinsfile b/Jenkinsfile index 4b10dd4..0956659 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -27,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' @@ -138,7 +138,6 @@ pipeline { steps { script{ env.IMAGE = env.DOCKERHUB_IMAGE - env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME env.GITHUBIMAGE = 'docker.pkg.github.com/' + env.LS_USER + '/' + env.LS_REPO + '/' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { @@ -159,7 +158,6 @@ pipeline { steps { script{ env.IMAGE = env.DEV_DOCKERHUB_IMAGE - env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME env.GITHUBIMAGE = 'docker.pkg.github.com/' + env.LS_USER + '/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { @@ -180,7 +178,6 @@ pipeline { steps { script{ env.IMAGE = env.PR_DOCKERHUB_IMAGE - env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME env.GITHUBIMAGE = 'docker.pkg.github.com/' + env.LS_USER + '/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { @@ -545,22 +542,15 @@ pipeline { credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', usernameVariable: 'DOCKERUSER', passwordVariable: 'DOCKERPASS' - ], - [ - $class: 'UsernamePasswordMultiBinding', - credentialsId: 'Quay.io-Robot', - usernameVariable: 'QUAYUSER', - passwordVariable: 'QUAYPASS' ] ]) { retry(5) { sh '''#! /bin/bash set -e - echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin echo $GITHUB_TOKEN | docker login docker.pkg.github.com -u LinuxServer-CI --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin - for PUSHIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do + for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG} docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest docker push ${PUSHIMAGE}:latest @@ -569,7 +559,7 @@ pipeline { ''' } sh '''#! /bin/bash - for DELETEIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "{GITLABIMAGE}" "${IMAGE}"; do + for DELETEIMAGE in "${GITHUBIMAGE}" "{GITLABIMAGE}" "${IMAGE}"; do docker rmi \ ${DELETEIMAGE}:${META_TAG} \ ${DELETEIMAGE}:latest || : @@ -591,18 +581,11 @@ pipeline { credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', usernameVariable: 'DOCKERUSER', passwordVariable: 'DOCKERPASS' - ], - [ - $class: 'UsernamePasswordMultiBinding', - credentialsId: 'Quay.io-Robot', - usernameVariable: 'QUAYUSER', - passwordVariable: 'QUAYPASS' ] ]) { retry(5) { sh '''#! /bin/bash set -e - echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin echo $GITHUB_TOKEN | docker login docker.pkg.github.com -u LinuxServer-CI --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin @@ -636,26 +619,24 @@ pipeline { docker manifest push --purge ${MANIFESTIMAGE}:latest docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} done - for LEGACYIMAGE in "${GITHUBIMAGE}" "${QUAYIMAGE}"; do - docker tag ${IMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:amd64-${META_TAG} - docker tag ${IMAGE}:arm32v7-${META_TAG} ${LEGACYIMAGE}:arm32v7-${META_TAG} - docker tag ${IMAGE}:arm64v8-${META_TAG} ${LEGACYIMAGE}:arm64v8-${META_TAG} - docker tag ${LEGACYIMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:latest - docker tag ${LEGACYIMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:${META_TAG} - docker tag ${LEGACYIMAGE}:arm32v7-${META_TAG} ${LEGACYIMAGE}:arm32v7-latest - docker tag ${LEGACYIMAGE}:arm64v8-${META_TAG} ${LEGACYIMAGE}:arm64v8-latest - docker push ${LEGACYIMAGE}:amd64-${META_TAG} - docker push ${LEGACYIMAGE}:arm32v7-${META_TAG} - docker push ${LEGACYIMAGE}:arm64v8-${META_TAG} - docker push ${LEGACYIMAGE}:latest - docker push ${LEGACYIMAGE}:${META_TAG} - docker push ${LEGACYIMAGE}:arm32v7-latest - docker push ${LEGACYIMAGE}:arm64v8-latest - 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}:latest + docker tag ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:${META_TAG} + 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}:latest + docker push ${GITHUBIMAGE}:${META_TAG} + docker push ${GITHUBIMAGE}:arm32v7-latest + docker push ${GITHUBIMAGE}:arm64v8-latest ''' } sh '''#! /bin/bash - for DELETEIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do + for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do docker rmi \ ${DELETEIMAGE}:amd64-${META_TAG} \ ${DELETEIMAGE}:amd64-latest \ diff --git a/README.md b/README.md index 79a0827..a321f0f 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io) -[![Blog](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!") -[![Discord](https://img.shields.io/discord/354974912613449730.svg?style=flat-square&color=E68523&label=Discord&logo=discord&logoColor=FFFFFF)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.") -[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?style=flat-square&color=E68523&logo=discourse&logoColor=FFFFFF)](https://discourse.linuxserver.io "post on our community forum.") -[![Fleet](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.") -[![GitHub](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=GitHub&logo=github&logoColor=FFFFFF)](https://github.com/linuxserver "view the source for all of our repositories.") -[![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?style=flat-square&color=E68523&label=Supporters&logo=open%20collective&logoColor=FFFFFF)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget") +[![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!") +[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.") +[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.") +[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.") +[![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.") +[![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget") The [LinuxServer.io](https://linuxserver.io) team brings you another container release featuring: @@ -25,16 +25,15 @@ Find us at: # [linuxserver/code-server](https://github.com/linuxserver/docker-code-server) -[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-code-server.svg?style=flat-square&color=E68523&logo=github&logoColor=FFFFFF)](https://github.com/linuxserver/docker-code-server) -[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-code-server.svg?style=flat-square&color=E68523&logo=github&logoColor=FFFFFF)](https://github.com/linuxserver/docker-code-server/releases) -[![GitHub Package Repository](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=GitHub%20Package&logo=github&logoColor=FFFFFF)](https://github.com/linuxserver/docker-code-server/packages) -[![GitLab Container Registry](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab&logoColor=FFFFFF)](https://gitlab.com/Linuxserver.io/docker-code-server/container_registry) -[![Quay.io](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/code-server) -[![MicroBadger Layers](https://img.shields.io/microbadger/layers/linuxserver/code-server.svg?style=flat-square&color=E68523)](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?style=flat-square&color=E68523&label=pulls&logo=docker&logoColor=FFFFFF)](https://hub.docker.com/r/linuxserver/code-server) -[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/code-server.svg?style=flat-square&color=E68523&label=stars&logo=docker&logoColor=FFFFFF)](https://hub.docker.com/r/linuxserver/code-server) -[![Build Status](https://ci.linuxserver.io/view/all/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/badge/icon?style=flat-square)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/) -[![](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/code-server/latest/badge.svg)](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/code-server/latest/index.html) +[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-code-server.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-code-server) +[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-code-server.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-code-server/releases) +[![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-code-server/packages) +[![GitLab Container Registry](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab)](https://gitlab.com/Linuxserver.io/docker-code-server/container_registry) +[![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%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. @@ -57,6 +56,8 @@ The architectures supported by this image are: | Architecture | Tag | | :----: | --- | | x86-64 | amd64-latest | +| arm64 | arm64v8-latest | +| armhf | arm32v7-latest | ## Version Tags @@ -131,7 +132,7 @@ Container images are configured using parameters passed at runtime (such as thos ## Environment variables from files (Docker secrets) -You can set any environment variable from a file by using a special prepend `FILE__`. +You can set any environment variable from a file by using a special prepend `FILE__`. As an example: @@ -141,6 +142,11 @@ As an example: Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file. +## Umask for running applications + +For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional `-e UMASK=022` setting. +Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up [here](https://en.wikipedia.org/wiki/Umask) before asking for support. + ## User / Group Identifiers When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`. @@ -168,7 +174,7 @@ git config --global user.email "email address" ## Docker Mods -[![Docker Mods](https://img.shields.io/badge/dynamic/yaml?style=for-the-badge&color=E68523&label=mods&query=%24.mods%5B%27code-server%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=code-server "view available mods for this container.") +[![Docker Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=mods&query=%24.mods%5B%27code-server%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=code-server "view available mods for this container.") We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above. @@ -237,6 +243,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **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. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index db42eab..2e583cb 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -18,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' diff --git a/package_versions.txt b/package_versions.txt index 5ebe00a..bc8e8f0 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,6 +1,6 @@ adduser3.116ubuntu1 -apt1.6.12 -apt-utils1.6.12 +apt1.6.12ubuntu0.1 +apt-utils1.6.12ubuntu0.1 base-files10.1ubuntu2.8 base-passwd3.5.44 bash4.4.18-2ubuntu1.2 @@ -13,14 +13,25 @@ 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 @@ -29,9 +40,10 @@ jq1.5+dfsg-2 krb5-locales1.16-2ubuntu0.1 less487-0.1 libacl12.2.52-3build1 -libapt-inst2.01.6.12 -libapt-pkg5.01.6.12 +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 @@ -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 @@ -106,12 +126,12 @@ libsmartcols12.31.1-0.4ubuntu3.6 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.5 +libssl1.11.1.1-1ubuntu2.1~18.04.6 libstdc++68.4.0-1ubuntu1~18.04 -libsystemd0237-3ubuntu10.40 +libsystemd0237-3ubuntu10.41 libtasn1-64.13-2 libtinfo56.1-1ubuntu1.18.04 -libudev1237-3ubuntu10.40 +libudev1237-3ubuntu10.41 libunistring20.9.9-0ubuntu2 libuuid12.31.1-0.4ubuntu3.6 libwind0-heimdal7.5.0+dfsg-1 @@ -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,22 +155,31 @@ 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.5 +openssl1.1.1-1ubuntu2.1~18.04.6 passwd1:4.5-1ubuntu2 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 sysvinit-utils2.88dsf-59.10ubuntu1 tar1.29b-2ubuntu0.1 -tzdata2019c-0ubuntu0.18.04 +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 diff --git a/readme-vars.yml b/readme-vars.yml index 33e8f9b..9df9c18 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -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 @@ -65,7 +67,9 @@ app_setup_block: | # changelog changelogs: - - { date: "20.05.20:", desc: "Add --domain-proxy support."} + - { 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." } diff --git a/root/etc/services.d/code-server/run b/root/etc/services.d/code-server/run index 2e91f05..435648e 100644 --- a/root/etc/services.d/code-server/run +++ b/root/etc/services.d/code-server/run @@ -18,13 +18,12 @@ else fi exec \ - s6-setuidgid abc \ - /app/code-server/code-server \ - --bind-addr 0.0.0.0:8443 \ - --user-data-dir /config/data \ - --extensions-dir /config/extensions \ - --disable-telemetry \ - --disable-updates \ - --auth "${AUTH}" \ - "${PROXY_DOMAIN_ARG}" \ - /config/workspace + s6-setuidgid abc \ + /usr/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