@@ -10,16 +10,35 @@ RUN addgroup -g 1000 node \
1010 curl \
1111 && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" \
1212 && case "${alpineArch##*-}" in \
13- x86_64) ARCH='x64' CHECKSUM="cc6a960576eeebf62d51d25ce0d138a3ca50a57e3f8f4a8bc10a3e37b15e2f63 " OPENSSL_ARCH=linux-x86_64;; \
13+ x86_64) ARCH='x64' CHECKSUM="TRUE " OPENSSL_ARCH=linux-x86_64;; \
1414 aarch64) OPENSSL_ARCH=linux-aarch64;; \
1515 *) echo "unsupported architecture" ; exit 1 ;; \
1616 esac \
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+ 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 \
23+ DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 \
24+ CC68F5A3106FF448322E48ED27F5E38D5B0A215F \
25+ 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 \
26+ C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \
27+ 108F52B48DB57BB0CC439B2997B01419BD92F80A \
28+ 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD \
29+ A363A499291CBBC940DD62E41F10027AF002F8B0 \
30+ ; do \
31+ { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key" ; } || \
32+ { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key" ; } ; \
33+ done \
1734 && 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; \
35+ && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
36+ && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
37+ && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
38+ && grep " node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz\$ " SHASUMS256.txt | sha256sum -c - \
39+ && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
40+ && rm "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
41+ && ln -s /usr/local/bin/node /usr/local/bin/nodejs \
2342 else \
2443 echo "Building from source" \
2544 # backup build
@@ -35,27 +54,9 @@ RUN addgroup -g 1000 node \
3554 py-setuptools \
3655 rust \
3756 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 \
5457 && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
5558 && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
5659 && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
57- && gpgconf --kill all \
58- && rm -rf "$GNUPGHOME" \
5960 && grep " node-v$NODE_VERSION.tar.xz\$ " SHASUMS256.txt | sha256sum -c - \
6061 && tar -xf "node-v$NODE_VERSION.tar.xz" \
6162 && cd "node-v$NODE_VERSION" \
@@ -66,8 +67,10 @@ RUN addgroup -g 1000 node \
6667 && cd .. \
6768 && rm -Rf "node-v$NODE_VERSION" \
6869 && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
70+ && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
6971 fi \
70- && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
72+ && gpgconf --kill all \
73+ && rm -rf "$GNUPGHOME" \
7174 # Remove unused OpenSSL headers to save ~34MB. See this NodeJS issue: https://github.com/nodejs/node/issues/46451
7275 && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; \
7376 && apk del .build-deps \
0 commit comments