@@ -5,43 +5,48 @@ ENV NODE_VERSION=0.0.0
55RUN addgroup -g 1000 node \
66 && adduser -u 1000 -G node -s /bin/sh -D node \
77 && apk add --no-cache \
8+ libatomic \
89 libstdc++ \
910 && apk add --no-cache --virtual .build-deps \
11+ gnupg \
1012 curl \
1113 && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" \
1214 && case "${alpineArch##*-}" in \
1315 "${ALPINE_ARCH[@]}"
1416 esac \
15- && if [ -n "${CHECKSUM}" ]; then \
16- set -eu; \
17- curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; \
18- echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - \
19- && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
20- && ln -s /usr/local/bin/node /usr/local/bin/nodejs; \
17+ # use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150
18+ && export GNUPGHOME="$(mktemp -d)" \
19+ # gpg keys listed at https://github.com/nodejs/node#release-keys
20+ && set -ex \
21+ && for key in \
22+ "${NODE_KEYS[@]}"
23+ ; do \
24+ { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || \
25+ { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; \
26+ done \
27+ && if [ "$ARCH" = "x64" ]; then \
28+ curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
29+ && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
30+ && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
31+ && gpgconf --kill all \
32+ && rm -rf "$GNUPGHOME" \
33+ && grep " node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
34+ && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
35+ && rm "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
36+ && ln -s /usr/local/bin/node /usr/local/bin/nodejs; \
2137 else \
2238 echo "Building from source" \
23- # backup build
2439 && apk add --no-cache --virtual .build-deps-full \
2540 binutils-gold \
2641 g++ \
2742 gcc \
28- gnupg \
2943 libgcc \
3044 linux-headers \
3145 make \
3246 python3 \
3347 py-setuptools \
3448 rust \
3549 cargo \
36- # use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150
37- && export GNUPGHOME="$(mktemp -d)" \
38- # gpg keys listed at https://github.com/nodejs/node#release-keys
39- && for key in \
40- "${NODE_KEYS[@]}"
41- ; do \
42- { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || \
43- { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; \
44- done \
4550 && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
4651 && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
4752 && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
@@ -58,7 +63,6 @@ RUN addgroup -g 1000 node \
5863 && rm -Rf "node-v$NODE_VERSION" \
5964 && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
6065 fi \
61- && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
6266 # Remove unused OpenSSL headers to save ~34MB. See this NodeJS issue: https://github.com/nodejs/node/issues/46451
6367 && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; \
6468 && apk del .build-deps \
0 commit comments