From dbee85cde7c9d11d9df2d9305df4039942fc1ba9 Mon Sep 17 00:00:00 2001 From: Vincent Composieux Date: Fri, 12 Feb 2021 22:45:56 +0100 Subject: [PATCH] Added alpine 3.13 base distrib for node.js v14 and v15 Alpine just released its v3.13 version with some performances improvements in the way on how NodeJS is built. For more information, see release blog post: https://alpinelinux.org/posts/Alpine-3.13.0-released.html --- 10/alpine3.10/Dockerfile | 4 +- 10/alpine3.11/Dockerfile | 4 +- 10/buster-slim/Dockerfile | 2 +- 10/buster/Dockerfile | 2 +- 10/stretch-slim/Dockerfile | 2 +- 10/stretch/Dockerfile | 2 +- 12/alpine3.10/Dockerfile | 6 +- 12/alpine3.11/Dockerfile | 6 +- 12/alpine3.12/Dockerfile | 6 +- 12/buster-slim/Dockerfile | 4 +- 12/buster/Dockerfile | 4 +- 12/stretch-slim/Dockerfile | 4 +- 12/stretch/Dockerfile | 4 +- 14/alpine3.13/Dockerfile | 100 +++++++++++++++++++++++++++++ 14/alpine3.13/docker-entrypoint.sh | 8 +++ 14/architectures | 12 ++-- 15/alpine3.13/Dockerfile | 100 +++++++++++++++++++++++++++++ 15/alpine3.13/docker-entrypoint.sh | 8 +++ 15/architectures | 12 ++-- architectures | 14 ++-- 20 files changed, 260 insertions(+), 44 deletions(-) create mode 100644 14/alpine3.13/Dockerfile create mode 100755 14/alpine3.13/docker-entrypoint.sh create mode 100644 15/alpine3.13/Dockerfile create mode 100755 15/alpine3.13/docker-entrypoint.sh diff --git a/10/alpine3.10/Dockerfile b/10/alpine3.10/Dockerfile index 6f9e6c68..86581733 100644 --- a/10/alpine3.10/Dockerfile +++ b/10/alpine3.10/Dockerfile @@ -1,6 +1,6 @@ FROM alpine:3.10 -ENV NODE_VERSION 10.23.2 +ENV NODE_VERSION 10.23.3 RUN addgroup -g 1000 node \ && adduser -u 1000 -G node -s /bin/sh -D node \ @@ -12,7 +12,7 @@ RUN addgroup -g 1000 node \ && case "${alpineArch##*-}" in \ x86_64) \ ARCH='x64' \ - CHECKSUM="b3ae42c904bfda144df81275fbc8ef89baab0babca0f95a1e06f4b4064f3f8ee" \ + CHECKSUM="0f7cfb9c2b3f2f53d307756a6f824013b5c5f1cba503f55e3ecbc1653786e7b9" \ ;; \ *) ;; \ esac \ diff --git a/10/alpine3.11/Dockerfile b/10/alpine3.11/Dockerfile index 53484f65..82b0ca5f 100644 --- a/10/alpine3.11/Dockerfile +++ b/10/alpine3.11/Dockerfile @@ -1,6 +1,6 @@ FROM alpine:3.11 -ENV NODE_VERSION 10.23.2 +ENV NODE_VERSION 10.23.3 RUN addgroup -g 1000 node \ && adduser -u 1000 -G node -s /bin/sh -D node \ @@ -12,7 +12,7 @@ RUN addgroup -g 1000 node \ && case "${alpineArch##*-}" in \ x86_64) \ ARCH='x64' \ - CHECKSUM="b3ae42c904bfda144df81275fbc8ef89baab0babca0f95a1e06f4b4064f3f8ee" \ + CHECKSUM="0f7cfb9c2b3f2f53d307756a6f824013b5c5f1cba503f55e3ecbc1653786e7b9" \ ;; \ *) ;; \ esac \ diff --git a/10/buster-slim/Dockerfile b/10/buster-slim/Dockerfile index 56d8afac..e07e4ca3 100644 --- a/10/buster-slim/Dockerfile +++ b/10/buster-slim/Dockerfile @@ -3,7 +3,7 @@ FROM debian:buster-slim RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.23.2 +ENV NODE_VERSION 10.23.3 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ diff --git a/10/buster/Dockerfile b/10/buster/Dockerfile index ace53552..bd3a7fca 100644 --- a/10/buster/Dockerfile +++ b/10/buster/Dockerfile @@ -3,7 +3,7 @@ FROM buildpack-deps:buster RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.23.2 +ENV NODE_VERSION 10.23.3 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ diff --git a/10/stretch-slim/Dockerfile b/10/stretch-slim/Dockerfile index f7daecc5..a6109bce 100644 --- a/10/stretch-slim/Dockerfile +++ b/10/stretch-slim/Dockerfile @@ -3,7 +3,7 @@ FROM debian:stretch-slim RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.23.2 +ENV NODE_VERSION 10.23.3 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ diff --git a/10/stretch/Dockerfile b/10/stretch/Dockerfile index daa2a992..17f35af0 100644 --- a/10/stretch/Dockerfile +++ b/10/stretch/Dockerfile @@ -3,7 +3,7 @@ FROM buildpack-deps:stretch RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.23.2 +ENV NODE_VERSION 10.23.3 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ diff --git a/12/alpine3.10/Dockerfile b/12/alpine3.10/Dockerfile index 19be1014..d4ed67f0 100644 --- a/12/alpine3.10/Dockerfile +++ b/12/alpine3.10/Dockerfile @@ -1,6 +1,6 @@ FROM alpine:3.10 -ENV NODE_VERSION 12.20.1 +ENV NODE_VERSION 12.20.2 RUN addgroup -g 1000 node \ && adduser -u 1000 -G node -s /bin/sh -D node \ @@ -12,7 +12,7 @@ RUN addgroup -g 1000 node \ && case "${alpineArch##*-}" in \ x86_64) \ ARCH='x64' \ - CHECKSUM="783fbfc85228418d0630b778214bdcea3a82d5c3ac13aefcc14e4a81e977d9c9" \ + CHECKSUM="89854b77656f0f7f89e5d1e68c5a2aa6f32d534e9c1646146346a76d4364d1e5" \ ;; \ *) ;; \ esac \ @@ -38,7 +38,7 @@ RUN addgroup -g 1000 node \ && for key in \ 4ED778F539E3634C779C87C6D7062848A1AB005C \ 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ - 1C050899334244A8AF75E53792EF661D867B9DFA \ + 74F12602B6F1C4E913FAA37AD3A89613643B6201 \ 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ diff --git a/12/alpine3.11/Dockerfile b/12/alpine3.11/Dockerfile index 33c824e0..6ccc3f57 100644 --- a/12/alpine3.11/Dockerfile +++ b/12/alpine3.11/Dockerfile @@ -1,6 +1,6 @@ FROM alpine:3.11 -ENV NODE_VERSION 12.20.1 +ENV NODE_VERSION 12.20.2 RUN addgroup -g 1000 node \ && adduser -u 1000 -G node -s /bin/sh -D node \ @@ -12,7 +12,7 @@ RUN addgroup -g 1000 node \ && case "${alpineArch##*-}" in \ x86_64) \ ARCH='x64' \ - CHECKSUM="783fbfc85228418d0630b778214bdcea3a82d5c3ac13aefcc14e4a81e977d9c9" \ + CHECKSUM="89854b77656f0f7f89e5d1e68c5a2aa6f32d534e9c1646146346a76d4364d1e5" \ ;; \ *) ;; \ esac \ @@ -38,7 +38,7 @@ RUN addgroup -g 1000 node \ && for key in \ 4ED778F539E3634C779C87C6D7062848A1AB005C \ 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ - 1C050899334244A8AF75E53792EF661D867B9DFA \ + 74F12602B6F1C4E913FAA37AD3A89613643B6201 \ 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ diff --git a/12/alpine3.12/Dockerfile b/12/alpine3.12/Dockerfile index 5227db8c..e33e1d76 100644 --- a/12/alpine3.12/Dockerfile +++ b/12/alpine3.12/Dockerfile @@ -1,6 +1,6 @@ FROM alpine:3.12 -ENV NODE_VERSION 12.20.1 +ENV NODE_VERSION 12.20.2 RUN addgroup -g 1000 node \ && adduser -u 1000 -G node -s /bin/sh -D node \ @@ -12,7 +12,7 @@ RUN addgroup -g 1000 node \ && case "${alpineArch##*-}" in \ x86_64) \ ARCH='x64' \ - CHECKSUM="783fbfc85228418d0630b778214bdcea3a82d5c3ac13aefcc14e4a81e977d9c9" \ + CHECKSUM="89854b77656f0f7f89e5d1e68c5a2aa6f32d534e9c1646146346a76d4364d1e5" \ ;; \ *) ;; \ esac \ @@ -38,7 +38,7 @@ RUN addgroup -g 1000 node \ && for key in \ 4ED778F539E3634C779C87C6D7062848A1AB005C \ 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ - 1C050899334244A8AF75E53792EF661D867B9DFA \ + 74F12602B6F1C4E913FAA37AD3A89613643B6201 \ 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ diff --git a/12/buster-slim/Dockerfile b/12/buster-slim/Dockerfile index 66fabe41..77b14a44 100644 --- a/12/buster-slim/Dockerfile +++ b/12/buster-slim/Dockerfile @@ -3,7 +3,7 @@ FROM debian:buster-slim RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 12.20.1 +ENV NODE_VERSION 12.20.2 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -22,7 +22,7 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && for key in \ 4ED778F539E3634C779C87C6D7062848A1AB005C \ 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ - 1C050899334244A8AF75E53792EF661D867B9DFA \ + 74F12602B6F1C4E913FAA37AD3A89613643B6201 \ 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ diff --git a/12/buster/Dockerfile b/12/buster/Dockerfile index 4f617b81..a0a5cd7c 100644 --- a/12/buster/Dockerfile +++ b/12/buster/Dockerfile @@ -3,7 +3,7 @@ FROM buildpack-deps:buster RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 12.20.1 +ENV NODE_VERSION 12.20.2 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -20,7 +20,7 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && for key in \ 4ED778F539E3634C779C87C6D7062848A1AB005C \ 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ - 1C050899334244A8AF75E53792EF661D867B9DFA \ + 74F12602B6F1C4E913FAA37AD3A89613643B6201 \ 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ diff --git a/12/stretch-slim/Dockerfile b/12/stretch-slim/Dockerfile index 6bb2bc83..2c30bfac 100644 --- a/12/stretch-slim/Dockerfile +++ b/12/stretch-slim/Dockerfile @@ -3,7 +3,7 @@ FROM debian:stretch-slim RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 12.20.1 +ENV NODE_VERSION 12.20.2 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -22,7 +22,7 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && for key in \ 4ED778F539E3634C779C87C6D7062848A1AB005C \ 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ - 1C050899334244A8AF75E53792EF661D867B9DFA \ + 74F12602B6F1C4E913FAA37AD3A89613643B6201 \ 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ diff --git a/12/stretch/Dockerfile b/12/stretch/Dockerfile index faa06194..af87aeea 100644 --- a/12/stretch/Dockerfile +++ b/12/stretch/Dockerfile @@ -3,7 +3,7 @@ FROM buildpack-deps:stretch RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 12.20.1 +ENV NODE_VERSION 12.20.2 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -20,7 +20,7 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && for key in \ 4ED778F539E3634C779C87C6D7062848A1AB005C \ 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ - 1C050899334244A8AF75E53792EF661D867B9DFA \ + 74F12602B6F1C4E913FAA37AD3A89613643B6201 \ 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ diff --git a/14/alpine3.13/Dockerfile b/14/alpine3.13/Dockerfile new file mode 100644 index 00000000..1e1d5a4a --- /dev/null +++ b/14/alpine3.13/Dockerfile @@ -0,0 +1,100 @@ +FROM alpine:3.13 + +ENV NODE_VERSION 14.15.5 + +RUN addgroup -g 1000 node \ + && adduser -u 1000 -G node -s /bin/sh -D node \ + && apk add --no-cache \ + libstdc++ \ + && apk add --no-cache --virtual .build-deps \ + curl \ + && ARCH= && alpineArch="$(apk --print-arch)" \ + && case "${alpineArch##*-}" in \ + x86_64) \ + ARCH='x64' \ + CHECKSUM="e7ca0569963c3155d86c51b3855469c3496f0c8d2fce080480d92de5a6287977" \ + ;; \ + *) ;; \ + esac \ + && if [ -n "${CHECKSUM}" ]; then \ + set -eu; \ + curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; \ + echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - \ + && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ + && ln -s /usr/local/bin/node /usr/local/bin/nodejs; \ + else \ + echo "Building from source" \ + # backup build + && apk add --no-cache --virtual .build-deps-full \ + binutils-gold \ + g++ \ + gcc \ + gnupg \ + libgcc \ + linux-headers \ + make \ + python3 \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && for key in \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + 74F12602B6F1C4E913FAA37AD3A89613643B6201 \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + 108F52B48DB57BB0CC439B2997B01419BD92F80A \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \ + && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ + && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ + && grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ + && tar -xf "node-v$NODE_VERSION.tar.xz" \ + && cd "node-v$NODE_VERSION" \ + && ./configure \ + && make -j$(getconf _NPROCESSORS_ONLN) V= \ + && make install \ + && apk del .build-deps-full \ + && cd .. \ + && rm -Rf "node-v$NODE_VERSION" \ + && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \ + fi \ + && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \ + && apk del .build-deps \ + # smoke tests + && node --version \ + && npm --version + +ENV YARN_VERSION 1.22.5 + +RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \ + && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \ + && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ + && mkdir -p /opt \ + && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \ + && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \ + && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \ + && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ + && apk del .build-deps-yarn \ + # smoke test + && yarn --version + +COPY docker-entrypoint.sh /usr/local/bin/ +ENTRYPOINT ["docker-entrypoint.sh"] + +CMD [ "node" ] diff --git a/14/alpine3.13/docker-entrypoint.sh b/14/alpine3.13/docker-entrypoint.sh new file mode 100755 index 00000000..de6fa8a9 --- /dev/null +++ b/14/alpine3.13/docker-entrypoint.sh @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +if [ "${1#-}" != "${1}" ] || [ -z "$(command -v "${1}")" ]; then + set -- node "$@" +fi + +exec "$@" diff --git a/14/architectures b/14/architectures index e5967159..253f4aa7 100644 --- a/14/architectures +++ b/14/architectures @@ -1,7 +1,7 @@ bashbrew-arch variants -amd64 alpine3.10,alpine3.11,alpine3.12,buster,buster-slim,stretch,stretch-slim -arm32v6 alpine3.10,alpine3.11,alpine3.12 -arm32v7 alpine3.10,alpine3.11,alpine3.12,buster,buster-slim,stretch,stretch-slim -arm64v8 alpine3.10,alpine3.11,alpine3.12,buster,buster-slim,stretch,stretch-slim -ppc64le alpine3.10,alpine3.11,alpine3.12,buster,buster-slim -s390x alpine3.10,alpine3.11,alpine3.12,buster,buster-slim +amd64 alpine3.10,alpine3.11,alpine3.12,alpine3.13,buster,buster-slim,stretch,stretch-slim +arm32v6 alpine3.10,alpine3.11,alpine3.12,alpine3.13 +arm32v7 alpine3.10,alpine3.11,alpine3.12,alpine3.13,buster,buster-slim,stretch,stretch-slim +arm64v8 alpine3.10,alpine3.11,alpine3.12,alpine3.13,buster,buster-slim,stretch,stretch-slim +ppc64le alpine3.10,alpine3.11,alpine3.12,alpine3.13,buster,buster-slim +s390x alpine3.10,alpine3.11,alpine3.12,alpine3.13,buster,buster-slim diff --git a/15/alpine3.13/Dockerfile b/15/alpine3.13/Dockerfile new file mode 100644 index 00000000..081d521c --- /dev/null +++ b/15/alpine3.13/Dockerfile @@ -0,0 +1,100 @@ +FROM alpine:3.13 + +ENV NODE_VERSION 15.8.0 + +RUN addgroup -g 1000 node \ + && adduser -u 1000 -G node -s /bin/sh -D node \ + && apk add --no-cache \ + libstdc++ \ + && apk add --no-cache --virtual .build-deps \ + curl \ + && ARCH= && alpineArch="$(apk --print-arch)" \ + && case "${alpineArch##*-}" in \ + x86_64) \ + ARCH='x64' \ + CHECKSUM="88143a3be735d35e43191f0757ac1279fd11d39ff7373579eb4a7f677875ec1a" \ + ;; \ + *) ;; \ + esac \ + && if [ -n "${CHECKSUM}" ]; then \ + set -eu; \ + curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; \ + echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - \ + && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ + && ln -s /usr/local/bin/node /usr/local/bin/nodejs; \ + else \ + echo "Building from source" \ + # backup build + && apk add --no-cache --virtual .build-deps-full \ + binutils-gold \ + g++ \ + gcc \ + gnupg \ + libgcc \ + linux-headers \ + make \ + python3 \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && for key in \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + 74F12602B6F1C4E913FAA37AD3A89613643B6201 \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + 108F52B48DB57BB0CC439B2997B01419BD92F80A \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \ + && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ + && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ + && grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ + && tar -xf "node-v$NODE_VERSION.tar.xz" \ + && cd "node-v$NODE_VERSION" \ + && ./configure \ + && make -j$(getconf _NPROCESSORS_ONLN) V= \ + && make install \ + && apk del .build-deps-full \ + && cd .. \ + && rm -Rf "node-v$NODE_VERSION" \ + && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \ + fi \ + && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \ + && apk del .build-deps \ + # smoke tests + && node --version \ + && npm --version + +ENV YARN_VERSION 1.22.5 + +RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \ + && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \ + && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ + && mkdir -p /opt \ + && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \ + && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \ + && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \ + && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ + && apk del .build-deps-yarn \ + # smoke test + && yarn --version + +COPY docker-entrypoint.sh /usr/local/bin/ +ENTRYPOINT ["docker-entrypoint.sh"] + +CMD [ "node" ] diff --git a/15/alpine3.13/docker-entrypoint.sh b/15/alpine3.13/docker-entrypoint.sh new file mode 100755 index 00000000..de6fa8a9 --- /dev/null +++ b/15/alpine3.13/docker-entrypoint.sh @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +if [ "${1#-}" != "${1}" ] || [ -z "$(command -v "${1}")" ]; then + set -- node "$@" +fi + +exec "$@" diff --git a/15/architectures b/15/architectures index e5967159..253f4aa7 100644 --- a/15/architectures +++ b/15/architectures @@ -1,7 +1,7 @@ bashbrew-arch variants -amd64 alpine3.10,alpine3.11,alpine3.12,buster,buster-slim,stretch,stretch-slim -arm32v6 alpine3.10,alpine3.11,alpine3.12 -arm32v7 alpine3.10,alpine3.11,alpine3.12,buster,buster-slim,stretch,stretch-slim -arm64v8 alpine3.10,alpine3.11,alpine3.12,buster,buster-slim,stretch,stretch-slim -ppc64le alpine3.10,alpine3.11,alpine3.12,buster,buster-slim -s390x alpine3.10,alpine3.11,alpine3.12,buster,buster-slim +amd64 alpine3.10,alpine3.11,alpine3.12,alpine3.13,buster,buster-slim,stretch,stretch-slim +arm32v6 alpine3.10,alpine3.11,alpine3.12,alpine3.13 +arm32v7 alpine3.10,alpine3.11,alpine3.12,alpine3.13,buster,buster-slim,stretch,stretch-slim +arm64v8 alpine3.10,alpine3.11,alpine3.12,alpine3.13,buster,buster-slim,stretch,stretch-slim +ppc64le alpine3.10,alpine3.11,alpine3.12,alpine3.13,buster,buster-slim +s390x alpine3.10,alpine3.11,alpine3.12,alpine3.13,buster,buster-slim diff --git a/architectures b/architectures index 09ace846..9c2484dd 100644 --- a/architectures +++ b/architectures @@ -1,8 +1,8 @@ bashbrew-arch variants -amd64 alpine3.10,alpine3.11,alpine3.12,buster,buster-slim,stretch,stretch-slim -arm32v6 alpine3.10,alpine3.11,alpine3.12 -arm32v7 alpine3.10,alpine3.11,alpine3.12,buster,buster-slim,stretch,stretch-slim -arm64v8 alpine3.10,alpine3.11,alpine3.12,buster,buster-slim,stretch,stretch-slim -i386 alpine3.10,alpine3.11,alpine3.12 -ppc64le alpine3.10,alpine3.11,alpine3.12,buster,buster-slim -s390x alpine3.10,alpine3.11,alpine3.12,buster,buster-slim +amd64 alpine3.10,alpine3.11,alpine3.12,alpine3.13,buster,buster-slim,stretch,stretch-slim +arm32v6 alpine3.10,alpine3.11,alpine3.12,alpine3.13 +arm32v7 alpine3.10,alpine3.11,alpine3.12,alpine3.13,buster,buster-slim,stretch,stretch-slim +arm64v8 alpine3.10,alpine3.11,alpine3.12,alpine3.13,buster,buster-slim,stretch,stretch-slim +i386 alpine3.10,alpine3.11,alpine3.12,alpine3.13 +ppc64le alpine3.10,alpine3.11,alpine3.12,alpine3.13,buster,buster-slim +s390x alpine3.10,alpine3.11,alpine3.12,alpine3.13,buster,buster-slim