@@ -7,50 +7,55 @@ RUN addgroup -g 1000 node \
77 && apk add --no-cache \
88 libstdc++ \
99 && apk add --no-cache --virtual .build-deps \
10+ gnupg \
1011 curl \
1112 && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" \
1213 && case "${alpineArch##*-}" in \
13- x86_64) ARCH='x64' CHECKSUM="cc6a960576eeebf62d51d25ce0d138a3ca50a57e3f8f4a8bc10a3e37b15e2f63 " OPENSSL_ARCH=linux-x86_64;; \
14+ x86_64) ARCH='x64' CHECKSUM="TRUE " OPENSSL_ARCH=linux-x86_64;; \
1415 aarch64) OPENSSL_ARCH=linux-aarch64;; \
1516 *) echo "unsupported architecture" ; exit 1 ;; \
1617 esac \
18+ # use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150
19+ && export GNUPGHOME="$(mktemp -d)" \
20+ # gpg keys listed at https://github.com/nodejs/node#release-keys
21+ && set -ex \
22+ && for key in \
23+ 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 \
24+ DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 \
25+ CC68F5A3106FF448322E48ED27F5E38D5B0A215F \
26+ 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 \
27+ C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \
28+ 108F52B48DB57BB0CC439B2997B01419BD92F80A \
29+ 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD \
30+ A363A499291CBBC940DD62E41F10027AF002F8B0 \
31+ ; do \
32+ { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key" ; } || \
33+ { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key" ; } ; \
34+ done \
1735 && if [ -n "${CHECKSUM}" ]; then \
18- set -eu; \
19- curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" ; \
20- echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - \
21- && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
22- && ln -s /usr/local/bin/node /usr/local/bin/nodejs; \
36+ curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
37+ && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
38+ && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
39+ && gpgconf --kill all \
40+ && rm -rf "$GNUPGHOME" \
41+ && grep " node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz\$ " SHASUMS256.txt | sha256sum -c - \
42+ && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
43+ && rm "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
44+ && ln -s /usr/local/bin/node /usr/local/bin/nodejs \
2345 else \
2446 echo "Building from source" \
2547 # backup build
2648 && apk add --no-cache --virtual .build-deps-full \
2749 binutils-gold \
2850 g++ \
2951 gcc \
30- gnupg \
3152 libgcc \
3253 linux-headers \
3354 make \
3455 python3 \
3556 py-setuptools \
3657 rust \
3758 cargo \
38- # use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150
39- && export GNUPGHOME="$(mktemp -d)" \
40- # gpg keys listed at https://github.com/nodejs/node#release-keys
41- && for key in \
42- 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 \
43- DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 \
44- CC68F5A3106FF448322E48ED27F5E38D5B0A215F \
45- 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 \
46- C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \
47- 108F52B48DB57BB0CC439B2997B01419BD92F80A \
48- 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD \
49- A363A499291CBBC940DD62E41F10027AF002F8B0 \
50- ; do \
51- { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key" ; } || \
52- { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key" ; } ; \
53- done \
5459 && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
5560 && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
5661 && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
@@ -67,7 +72,6 @@ RUN addgroup -g 1000 node \
6772 && rm -Rf "node-v$NODE_VERSION" \
6873 && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
6974 fi \
70- && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
7175 # Remove unused OpenSSL headers to save ~34MB. See this NodeJS issue: https://github.com/nodejs/node/issues/46451
7276 && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; \
7377 && apk del .build-deps \
0 commit comments