diff --git a/Dockerfile b/Dockerfile index 4f9b867..3117c60 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-ubuntu:focal +FROM ghcr.io/linuxserver/baseimage-ubuntu:jammy # set version label ARG BUILD_DATE @@ -8,19 +8,12 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA LABEL maintainer="aptalca" # environment settings +ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/config" RUN \ - echo "**** install node repo ****" && \ - curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \ - echo 'deb https://deb.nodesource.com/node_14.x focal main' \ - > /etc/apt/sources.list.d/nodesource.list && \ - echo "**** install build dependencies ****" && \ - apt-get update && \ - apt-get install -y \ - build-essential \ - nodejs && \ echo "**** install runtime dependencies ****" && \ + apt-get update && \ apt-get install -y \ git \ jq \ @@ -31,11 +24,12 @@ RUN \ net-tools \ unzip \ make \ + netcat \ sudo && \ echo "**** install code-server ****" && \ if [ -z ${CODE_RELEASE+x} ]; then \ CODE_RELEASE=$(curl -sX GET https://api.github.com/repos/coder/code-server/releases/latest \ - | awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^v||'); \ + | awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^v||'); \ fi && \ mkdir -p /app/code-server && \ curl -o \ @@ -43,22 +37,13 @@ RUN \ "https://github.com/coder/code-server/releases/download/v${CODE_RELEASE}/code-server-${CODE_RELEASE}-linux-amd64.tar.gz" && \ tar xf /tmp/code-server.tar.gz -C \ /app/code-server --strip-components=1 && \ - echo "**** patch 4.0.2 ****" && \ - if [ "${CODE_RELEASE}" = "4.0.2" ] && [ "$(uname -m)" != "x86_64" ]; then \ - cd /app/code-server && \ - npm i --production @node-rs/argon2; \ - fi && \ echo "**** clean up ****" && \ - apt-get purge --auto-remove -y \ - build-essential \ - nodejs && \ apt-get clean && \ rm -rf \ /config/* \ /tmp/* \ /var/lib/apt/lists/* \ - /var/tmp/* \ - /etc/apt/sources.list.d/nodesource.list + /var/tmp/* ENV TERRAFORM_VERSION=1.2.2 diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 5043fde..9502c20 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-focal +FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-jammy # set version label ARG BUILD_DATE @@ -8,30 +8,24 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA LABEL maintainer="aptalca" # environment settings +ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/config" RUN \ - echo "**** install node repo ****" && \ - curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \ - echo 'deb https://deb.nodesource.com/node_14.x focal main' \ - > /etc/apt/sources.list.d/nodesource.list && \ - echo "**** install build dependencies ****" && \ - apt-get update && \ - apt-get install -y \ - build-essential \ - nodejs && \ echo "**** install runtime dependencies ****" && \ + apt-get update && \ apt-get install -y \ git \ jq \ libatomic1 \ nano \ net-tools \ + netcat \ sudo && \ echo "**** install code-server ****" && \ if [ -z ${CODE_RELEASE+x} ]; then \ CODE_RELEASE=$(curl -sX GET https://api.github.com/repos/coder/code-server/releases/latest \ - | awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^v||'); \ + | awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^v||'); \ fi && \ mkdir -p /app/code-server && \ curl -o \ @@ -39,22 +33,13 @@ RUN \ "https://github.com/coder/code-server/releases/download/v${CODE_RELEASE}/code-server-${CODE_RELEASE}-linux-arm64.tar.gz" && \ tar xf /tmp/code-server.tar.gz -C \ /app/code-server --strip-components=1 && \ - echo "**** patch 4.0.2 ****" && \ - if [ "${CODE_RELEASE}" = "4.0.2" ] && [ "$(uname -m)" != "x86_64" ]; then \ - cd /app/code-server && \ - npm i --production @node-rs/argon2; \ - fi && \ echo "**** clean up ****" && \ - apt-get purge --auto-remove -y \ - build-essential \ - nodejs && \ apt-get clean && \ rm -rf \ /config/* \ /tmp/* \ /var/lib/apt/lists/* \ - /var/tmp/* \ - /etc/apt/sources.list.d/nodesource.list + /var/tmp/* # add local files COPY /root / diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 5b5063f..85dec79 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-ubuntu:arm32v7-focal +FROM ghcr.io/linuxserver/baseimage-ubuntu:arm32v7-jammy # set version label ARG BUILD_DATE @@ -8,30 +8,24 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA LABEL maintainer="aptalca" # environment settings +ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/config" RUN \ - echo "**** install node repo ****" && \ - curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \ - echo 'deb https://deb.nodesource.com/node_14.x focal main' \ - > /etc/apt/sources.list.d/nodesource.list && \ - echo "**** install build dependencies ****" && \ - apt-get update && \ - apt-get install -y \ - build-essential \ - nodejs && \ echo "**** install runtime dependencies ****" && \ + apt-get update && \ apt-get install -y \ git \ jq \ libatomic1 \ nano \ net-tools \ + netcat \ sudo && \ echo "**** install code-server ****" && \ if [ -z ${CODE_RELEASE+x} ]; then \ CODE_RELEASE=$(curl -sX GET https://api.github.com/repos/coder/code-server/releases/latest \ - | awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^v||'); \ + | awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^v||'); \ fi && \ mkdir -p /app/code-server && \ curl -o \ @@ -39,22 +33,13 @@ RUN \ "https://github.com/coder/code-server/releases/download/v${CODE_RELEASE}/code-server-${CODE_RELEASE}-linux-armv7l.tar.gz" && \ tar xf /tmp/code-server.tar.gz -C \ /app/code-server --strip-components=1 && \ - echo "**** patch 4.0.2 ****" && \ - if [ "${CODE_RELEASE}" = "4.0.2" ] && [ "$(uname -m)" != "x86_64" ]; then \ - cd /app/code-server && \ - npm i --production @node-rs/argon2; \ - fi && \ echo "**** clean up ****" && \ - apt-get purge --auto-remove -y \ - build-essential \ - nodejs && \ apt-get clean && \ rm -rf \ /config/* \ /tmp/* \ /var/lib/apt/lists/* \ - /var/tmp/* \ - /etc/apt/sources.list.d/nodesource.list + /var/tmp/* # add local files COPY /root / diff --git a/Jenkinsfile b/Jenkinsfile index 7516ecf..d37deb7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -710,7 +710,7 @@ pipeline { -e DO_REGION="ams3" \ -e DO_BUCKET="lsio-ci" \ -t ghcr.io/linuxserver/ci:latest \ - python /ci/ci.py''' + python3 test_build.py''' } } } diff --git a/README.md b/README.md index e00e96b..78f4199 100644 --- a/README.md +++ b/README.md @@ -64,16 +64,6 @@ The architectures supported by this image are: | arm64 | ✅ | arm64v8-\ | | armhf| ✅ | arm32v7-\ | -## Version Tags - -This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. - -| Tag | Available | Description | -| :----: | :----: |--- | -| latest | ✅ | Stable releases | -| focal | ✅ | DEPRECATED (no longer updated, `latest` is rebased on focal) - Stable releases, based on Ubuntu Focal | -| development | ✅ | DEPRECATED (no longer updated) - Prereleases from their GitHub | - ## Application Setup Access the webui at `http://:8443`. @@ -266,6 +256,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **05.10.22:** - Install recommended deps to maintain parity with the older images. +* **29.09.22:** - Rebase to jammy, switch to s6v3. Fix chown logic to skip `/config/workspace` contents. * **20.02.22:** - Install using the official tarballs. * **29.12.21:** - Add `install-extension` as a helper for mods to install extensions. * **06.12.21:** - Add `DEFAULT_WORKSPACE` env var. diff --git a/package_versions.txt b/package_versions.txt index 73224dd..fb9be5a 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,176 +1,172 @@ -adduser3.118ubuntu2 -apt2.0.8 -apt-utils2.0.8 -base-files11ubuntu5.5 -base-passwd3.5.47 -bash5.0-6ubuntu1.1 -bsdutils1:2.34-0.1ubuntu9.3 -bzip21.0.8-2 -ca-certificates20210119~20.04.2 -coreutils8.30-3ubuntu2 -curl7.68.0-1ubuntu2.11 -dash0.5.10.2-6 -debconf1.5.73 -debianutils4.9.1 -diffutils1:3.7-3 -dirmngr2.2.19-3ubuntu2.1 -dpkg1.19.7ubuntu3 -e2fsprogs1.45.5-2ubuntu1 -fdisk2.34-0.1ubuntu9.3 -findutils4.7.0-1ubuntu1 -gcc-10-base10.3.0-1ubuntu1~20.04 -git1:2.25.1-1ubuntu3.4 -git-man1:2.25.1-1ubuntu3.4 -gnupg2.2.19-3ubuntu2.1 -gnupg-l10n2.2.19-3ubuntu2.1 -gnupg-utils2.2.19-3ubuntu2.1 -gpg2.2.19-3ubuntu2.1 -gpg-agent2.2.19-3ubuntu2.1 -gpgconf2.2.19-3ubuntu2.1 -gpgsm2.2.19-3ubuntu2.1 -gpgv2.2.19-3ubuntu2.1 -gpg-wks-client2.2.19-3ubuntu2.1 -gpg-wks-server2.2.19-3ubuntu2.1 -grep3.4-1 -gzip1.10-0ubuntu4 -hostname3.23 -init-system-helpers1.57 -jq1.6-1ubuntu0.20.04.1 -krb5-locales1.17-6ubuntu4.1 -less551-1ubuntu0.1 -libacl12.2.53-6 -libapt-pkg6.02.0.8 -libasn1-8-heimdal7.7.0+dfsg-1ubuntu1 -libassuan02.5.3-7ubuntu2 -libatomic110.3.0-1ubuntu1~20.04 -libattr11:2.4.48-5 -libaudit11:2.8.5-2ubuntu6 -libaudit-common1:2.8.5-2ubuntu6 -libblkid12.34-0.1ubuntu9.3 -libbrotli11.0.7-6ubuntu0.1 -libbsd00.10.0-1 -libbz2-1.01.0.8-2 -libc62.31-0ubuntu9.9 -libcap-ng00.7.9-2.1build1 -libc-bin2.31-0ubuntu9.7 -libcbor0.60.6.0-0ubuntu1 -libcom-err21.45.5-2ubuntu1 -libcrypt11:4.4.10-10ubuntu4 -libcurl3-gnutls7.68.0-1ubuntu2.11 -libcurl47.68.0-1ubuntu2.11 -libdb5.35.3.28+dfsg1-0.6ubuntu2 -libdebconfclient00.251ubuntu1 -libedit23.1-20191231-1 +adduser3.118ubuntu5 +apt2.4.8 +apt-utils2.4.8 +base-files12ubuntu4.2 +base-passwd3.5.52build1 +bash5.1-6ubuntu1 +bsdutils1:2.37.2-4ubuntu3 +ca-certificates20211016 +coreutils8.32-4.1ubuntu1 +curl7.81.0-1ubuntu1.4 +dash0.5.11+git20210903+057cd650a4ed-3build1 +debconf1.5.79ubuntu1 +debianutils5.5-1ubuntu2 +diffutils1:3.8-0ubuntu2 +dirmngr2.2.27-3ubuntu2.1 +dpkg1.21.1ubuntu2.1 +e2fsprogs1.46.5-2ubuntu1.1 +findutils4.8.0-1ubuntu3 +gcc-12-base12.1.0-2ubuntu1~22.04 +git1:2.34.1-1ubuntu1.4 +git-man1:2.34.1-1ubuntu1.4 +gnupg2.2.27-3ubuntu2.1 +gnupg-l10n2.2.27-3ubuntu2.1 +gnupg-utils2.2.27-3ubuntu2.1 +gpg2.2.27-3ubuntu2.1 +gpg-agent2.2.27-3ubuntu2.1 +gpgconf2.2.27-3ubuntu2.1 +gpgsm2.2.27-3ubuntu2.1 +gpgv2.2.27-3ubuntu2.1 +gpg-wks-client2.2.27-3ubuntu2.1 +gpg-wks-server2.2.27-3ubuntu2.1 +grep3.7-1build1 +gzip1.10-4ubuntu4.1 +hostname3.23ubuntu2 +init-system-helpers1.62 +jq1.6-2.1ubuntu3 +less590-1build1 +libacl12.3.1-1 +libapt-pkg6.02.4.8 +libassuan02.5.5-1build1 +libatomic112.1.0-2ubuntu1~22.04 +libattr11:2.5.1-1build1 +libaudit11:3.0.7-1build1 +libaudit-common1:3.0.7-1build1 +libblkid12.37.2-4ubuntu3 +libbrotli11.0.9-2build6 +libbsd00.11.5-1 +libbz2-1.01.0.8-5build1 +libc62.35-0ubuntu3.1 +libcap21:2.44-1build3 +libcap-ng00.7.9-2.2build3 +libc-bin2.35-0ubuntu3.1 +libcbor0.80.8.0-2ubuntu1 +libcom-err21.46.5-2ubuntu1.1 +libcrypt11:4.4.27-1 +libcurl3-gnutls7.81.0-1ubuntu1.4 +libcurl47.81.0-1ubuntu1.4 +libdb5.35.3.28+dfsg1-0.8ubuntu3 +libdebconfclient00.261ubuntu1 +libedit23.1-20210910-1build1 liberror-perl0.17029-1 -libexpat12.2.9-1ubuntu0.4 -libext2fs21.45.5-2ubuntu1 -libfdisk12.34-0.1ubuntu9.3 -libffi73.3-4 -libfido2-11.3.1-1ubuntu2 -libgcc-s110.3.0-1ubuntu1~20.04 -libgcrypt201.8.5-5ubuntu1.1 -libgdbm61.18.1-5 -libgdbm-compat41.18.1-5 -libgmp102:6.2.0+dfsg-4 -libgnutls303.6.13-2ubuntu1.6 -libgpg-error01.37-1 -libgssapi3-heimdal7.7.0+dfsg-1ubuntu1 -libgssapi-krb5-21.17-6ubuntu4.1 -libhcrypto4-heimdal7.7.0+dfsg-1ubuntu1 -libheimbase1-heimdal7.7.0+dfsg-1ubuntu1 -libheimntlm0-heimdal7.7.0+dfsg-1ubuntu1 -libhogweed53.5.1+really3.5.1-2ubuntu0.2 -libhx509-5-heimdal7.7.0+dfsg-1ubuntu1 -libidn2-02.2.0-2 -libjq11.6-1ubuntu0.20.04.1 -libk5crypto31.17-6ubuntu4.1 -libkeyutils11.6-6ubuntu1 -libkrb5-26-heimdal7.7.0+dfsg-1ubuntu1 -libkrb5-31.17-6ubuntu4.1 -libkrb5support01.17-6ubuntu4.1 -libksba81.3.5-2 -libldap-2.4-22.4.49+dfsg-2ubuntu1.9 -libldap-common2.4.49+dfsg-2ubuntu1.9 -liblz4-11.9.2-2ubuntu0.20.04.1 -liblzma55.2.4-1ubuntu1 -libmount12.34-0.1ubuntu9.3 -libncurses66.2-0ubuntu2 -libncursesw66.2-0ubuntu2 -libnettle73.5.1+really3.5.1-2ubuntu0.2 -libnghttp2-141.40.0-1build1 -libnpth01.6-1 -libonig56.9.4-1 -libp11-kit00.23.20-1ubuntu0.1 -libpam0g1.3.1-5ubuntu4.3 -libpam-modules1.3.1-5ubuntu4.3 -libpam-modules-bin1.3.1-5ubuntu4.3 -libpam-runtime1.3.1-5ubuntu4.3 -libpcre2-8-010.34-7 -libpcre32:8.39-12build1 -libperl5.305.30.0-9ubuntu0.2 -libprocps82:3.3.16-1ubuntu2.3 -libpsl50.21.0-1ubuntu1 -libreadline88.0-4 -libroken18-heimdal7.7.0+dfsg-1ubuntu1 -librtmp12.4+20151223.gitfa8646d.1-2build1 -libsasl2-22.1.27+dfsg-2ubuntu0.1 -libsasl2-modules2.1.27+dfsg-2ubuntu0.1 -libsasl2-modules-db2.1.27+dfsg-2ubuntu0.1 -libseccomp22.5.1-1ubuntu1~20.04.2 -libselinux13.0-1build2 -libsemanage13.0-1build2 -libsemanage-common3.0-1build2 -libsepol13.0-1 -libsmartcols12.34-0.1ubuntu9.3 -libsqlite3-03.31.1-4ubuntu0.3 -libss21.45.5-2ubuntu1 -libssh-40.9.3-2ubuntu2.2 -libssl1.11.1.1f-1ubuntu2.13 -libstdc++610.3.0-1ubuntu1~20.04 -libsystemd0245.4-4ubuntu3.15 -libtasn1-64.16.0-2 -libtinfo66.2-0ubuntu2 -libudev1245.4-4ubuntu3.15 -libunistring20.9.10-2 -libuuid12.34-0.1ubuntu9.3 -libwind0-heimdal7.7.0+dfsg-1ubuntu1 -libx11-62:1.6.9-2ubuntu1.2 -libx11-data2:1.6.9-2ubuntu1.2 -libxau61:1.0.9-0ubuntu1 -libxcb11.14-2 -libxdmcp61:1.1.3-0ubuntu1 -libxext62:1.3.4-0ubuntu1 -libxmuu12:1.1.3-0ubuntu1 -libzstd11.4.4+dfsg-3ubuntu0.1 -locales2.31-0ubuntu9.9 -login1:4.8.1-1ubuntu5.20.04.1 -logsave1.45.5-2ubuntu1 -lsb-base11.1.0ubuntu2 -mawk1.3.4.20200120-2 -mount2.34-0.1ubuntu9.3 -nano4.8-1ubuntu1 -ncurses-base6.2-0ubuntu2 -ncurses-bin6.2-0ubuntu2 -netbase6.1 -net-tools1.60+git20180626.aebd88e-1ubuntu1 -openssh-client1:8.2p1-4ubuntu0.5 -openssl1.1.1f-1ubuntu2.13 -passwd1:4.8.1-1ubuntu5.20.04.1 -patch2.7.6-6 -perl5.30.0-9ubuntu0.2 -perl-base5.30.0-9ubuntu0.2 -perl-modules-5.305.30.0-9ubuntu0.2 -pinentry-curses1.1.0-3build1 -procps2:3.3.16-1ubuntu2.3 -publicsuffix20200303.0012-1 -readline-common8.0-4 -sed4.7-1 -sensible-utils0.0.12+nmu1 -sudo1.8.31-1ubuntu1.2 -sysvinit-utils2.96-2.1ubuntu1 -tar1.30+dfsg-7ubuntu0.20.04.2 -tzdata2022a-0ubuntu0.20.04 -ubuntu-keyring2020.02.11.4 -util-linux2.34-0.1ubuntu9.3 -xauth1:1.1-0ubuntu1 -zlib1g1:1.2.11.dfsg-2ubuntu1.2 +libexpat12.4.7-1 +libext2fs21.46.5-2ubuntu1.1 +libffi83.4.2-4 +libfido2-11.10.0-1 +libgcc-s112.1.0-2ubuntu1~22.04 +libgcrypt201.9.4-3ubuntu3 +libgdbm61.23-1 +libgdbm-compat41.23-1 +libgmp102:6.2.1+dfsg-3ubuntu1 +libgnutls303.7.3-4ubuntu1.1 +libgpg-error01.43-3 +libgssapi-krb5-21.19.2-2 +libhogweed63.7.3-1build2 +libidn2-02.3.2-2build1 +libjq11.6-2.1ubuntu3 +libk5crypto31.19.2-2 +libkeyutils11.6.1-2ubuntu3 +libkrb5-31.19.2-2 +libkrb5support01.19.2-2 +libksba81.6.0-2build1 +libldap-2.5-02.5.13+dfsg-0ubuntu0.22.04.1 +libldap-common2.5.13+dfsg-0ubuntu0.22.04.1 +liblz4-11.9.3-2build2 +liblzma55.2.5-2ubuntu1 +libmd01.0.4-1build1 +libmount12.37.2-4ubuntu3 +libncurses66.3-2 +libncursesw66.3-2 +libnettle83.7.3-1build2 +libnghttp2-141.43.0-1build3 +libnpth01.6-3build2 +libnsl21.3.0-2build2 +libonig56.9.7.1-2build1 +libp11-kit00.24.0-6build1 +libpam0g1.4.0-11ubuntu2 +libpam-modules1.4.0-11ubuntu2 +libpam-modules-bin1.4.0-11ubuntu2 +libpam-runtime1.4.0-11ubuntu2 +libpcre2-8-010.39-3ubuntu0.1 +libpcre32:8.39-13ubuntu0.22.04.1 +libperl5.345.34.0-3ubuntu1 +libprocps82:3.3.17-6ubuntu2 +libpsl50.21.0-1.2build2 +libreadline88.1.2-1 +librtmp12.4+20151223.gitfa8646d.1-2build4 +libsasl2-22.1.27+dfsg2-3ubuntu1 +libsasl2-modules2.1.27+dfsg2-3ubuntu1 +libsasl2-modules-db2.1.27+dfsg2-3ubuntu1 +libseccomp22.5.3-2ubuntu2 +libselinux13.3-1build2 +libsemanage23.3-1build2 +libsemanage-common3.3-1build2 +libsepol23.3-1build1 +libsmartcols12.37.2-4ubuntu3 +libsqlite3-03.37.2-2 +libss21.46.5-2ubuntu1.1 +libssh-40.9.6-2build1 +libssl33.0.2-0ubuntu1.6 +libstdc++612.1.0-2ubuntu1~22.04 +libsystemd0249.11-0ubuntu3.6 +libtasn1-64.18.0-4build1 +libtinfo66.3-2 +libtirpc31.3.2-2ubuntu0.1 +libtirpc-common1.3.2-2ubuntu0.1 +libudev1249.11-0ubuntu3.6 +libunistring21.0-1 +libuuid12.37.2-4ubuntu3 +libx11-62:1.7.5-1 +libx11-data2:1.7.5-1 +libxau61:1.0.9-1build5 +libxcb11.14-3ubuntu3 +libxdmcp61:1.1.3-0ubuntu5 +libxext62:1.3.4-1build1 +libxmuu12:1.1.3-3 +libxxhash00.8.1-1 +libzstd11.4.8+dfsg-3build1 +locales2.35-0ubuntu3.1 +login1:4.8.1-2ubuntu2 +logsave1.46.5-2ubuntu1.1 +lsb-base11.1.0ubuntu4 +mawk1.3.4.20200120-3 +mount2.37.2-4ubuntu3 +nano6.2-1 +ncurses-base6.3-2 +ncurses-bin6.3-2 +netbase6.3 +netcat1.218-4ubuntu1 +netcat-openbsd1.218-4ubuntu1 +net-tools1.60+git20181103.0eebece-1ubuntu5 +openssh-client1:8.9p1-3 +openssl3.0.2-0ubuntu1.6 +passwd1:4.8.1-2ubuntu2 +patch2.7.6-7build2 +perl5.34.0-3ubuntu1 +perl-base5.34.0-3ubuntu1 +perl-modules-5.345.34.0-3ubuntu1 +pinentry-curses1.1.1-1build2 +procps2:3.3.17-6ubuntu2 +publicsuffix20211207.1025-1 +readline-common8.1.2-1 +sed4.8-1ubuntu2 +sensible-utils0.0.17 +sudo1.9.9-1ubuntu2 +sysvinit-utils3.01-1ubuntu1 +tar1.34+dfsg-1build3 +tzdata2022c-0ubuntu0.22.04.0 +ubuntu-keyring2021.03.26 +usrmerge25ubuntu2 +util-linux2.37.2-4ubuntu3 +xauth1:1.1-1build2 +zlib1g1:1.2.11.dfsg-2ubuntu9.1 diff --git a/readme-vars.yml b/readme-vars.yml index 76c8bb4..7a876b0 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -26,11 +26,9 @@ available_architectures: - { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"} # development version -development_versions: true +development_versions: false development_versions_items: - { tag: "latest", desc: "Stable releases" } - - { tag: "focal", desc: "DEPRECATED (no longer updated, `latest` is rebased on focal) - Stable releases, based on Ubuntu Focal" } - - { tag: "development", desc: "DEPRECATED (no longer updated) - Prereleases from their GitHub" } # container parameters common_param_env_vars_enabled: true @@ -77,6 +75,8 @@ app_setup_block: | # changelog changelogs: + - { date: "05.10.22:", desc: "Install recommended deps to maintain parity with the older images." } + - { date: "29.09.22:", desc: "Rebase to jammy, switch to s6v3. Fix chown logic to skip `/config/workspace` contents." } - { date: "20.02.22:", desc: "Install using the official tarballs." } - { date: "29.12.21:", desc: "Add `install-extension` as a helper for mods to install extensions." } - { date: "06.12.21:", desc: "Add `DEFAULT_WORKSPACE` env var." } diff --git a/root/etc/s6-overlay/s6-rc.d/init-code-server/dependencies.d/init-config b/root/etc/s6-overlay/s6-rc.d/init-code-server/dependencies.d/init-config new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/cont-init.d/30-config b/root/etc/s6-overlay/s6-rc.d/init-code-server/run old mode 100644 new mode 100755 similarity index 56% rename from root/etc/cont-init.d/30-config rename to root/etc/s6-overlay/s6-rc.d/init-code-server/run index 1279d8d..d93a4d2 --- a/root/etc/cont-init.d/30-config +++ b/root/etc/s6-overlay/s6-rc.d/init-code-server/run @@ -22,21 +22,10 @@ fi [[ ! -f /config/.profile ]] && \ cp /root/.profile /config/.profile -# permissions -if [ -f "/usr/bin/find" ] && [ -f "/usr/bin/xargs" ]; then - CORES=$(nproc --all) - - # Split workload between config and workspace - echo "setting permissions::configuration" - find /config -path /config/workspace -prune -false -o -type d -print0 | \ - xargs --null -r --max-args=1 --max-procs=$((CORES*2*8)) \ - chown -R abc:abc - - echo "setting permissions::workspace" - chown abc:abc /config/workspace -else - # Set permissions on data mount - # do not decend into the workspace - chown -R abc:abc "$(ls /config -I workspace)" - chown abc:abc /config/workspace +# fix permissions (ignore contents of /config/workspace) +find /config -path /config/workspace -prune -o -exec chown abc:abc {} + +chown abc:abc /config/workspace +chmod 700 /config/.ssh +if [ -n "$(ls -A /config/.ssh)" ]; then + chmod 600 /config/.ssh/* fi diff --git a/root/etc/s6-overlay/s6-rc.d/init-code-server/type b/root/etc/s6-overlay/s6-rc.d/init-code-server/type new file mode 100644 index 0000000..3d92b15 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-code-server/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-code-server/up b/root/etc/s6-overlay/s6-rc.d/init-code-server/up new file mode 100644 index 0000000..4efdc97 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-code-server/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-code-server/run \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-code-server b/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-code-server new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-code-server/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-code-server/dependencies.d/init-services new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-code-server/notification-fd b/root/etc/s6-overlay/s6-rc.d/svc-code-server/notification-fd new file mode 100644 index 0000000..e440e5c --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-code-server/notification-fd @@ -0,0 +1 @@ +3 \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/svc-code-server/run b/root/etc/s6-overlay/s6-rc.d/svc-code-server/run new file mode 100755 index 0000000..373dc0a --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-code-server/run @@ -0,0 +1,26 @@ +#!/usr/bin/with-contenv bash + +if [ -n "${PASSWORD}" ] || [ -n "${HASHED_PASSWORD}" ]; then + AUTH="password" +else + 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-notifyoncheck -d -n 300 -w 1000 -c "nc -z 127.0.0.1 8443" \ + s6-setuidgid abc \ + /app/code-server/bin/code-server \ + --bind-addr 0.0.0.0:8443 \ + --user-data-dir /config/data \ + --extensions-dir /config/extensions \ + --disable-telemetry \ + --auth "${AUTH}" \ + "${PROXY_DOMAIN_ARG}" \ + "${DEFAULT_WORKSPACE:-/config/workspace}" diff --git a/root/etc/s6-overlay/s6-rc.d/svc-code-server/type b/root/etc/s6-overlay/s6-rc.d/svc-code-server/type new file mode 100644 index 0000000..1780f9f --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-code-server/type @@ -0,0 +1 @@ +longrun \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-code-server b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-code-server new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-code-server b/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-code-server new file mode 100644 index 0000000..e69de29