@@ -7,33 +7,51 @@ RUN addgroup -g 1000 node \
77 && apk add --no-cache \
88 libstdc++ \
99 && apk add --no-cache --virtual .build-deps \
10- binutils-gold \
1110 curl \
11+ && ARCH= && alpineArch="$(arch)" \
12+ && case "${alpineArch##*-}" in \
13+ x86_64) \
14+ ARCH='x64' \
15+ CHECKSUM="f893a03c5b51e0c540e32cd52773221a2f9b6d575e7fe79ffe9e878483c703ff" \
16+ ;; \
17+ *) ;; \
18+ esac \
19+ && if [ -n "${CHECKSUM}" ]; then \
20+ set -eu; \
21+ curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" ; \
22+ echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - \
23+ && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
24+ && ln -s /usr/local/bin/node /usr/local/bin/nodejs; \
25+ else \
26+ echo "Building from source" \
27+ # backup build
28+ && apk add --no-cache --virtual .build-deps-full \
29+ binutils-gold \
1230 g++ \
1331 gcc \
1432 gnupg \
1533 libgcc \
1634 linux-headers \
1735 make \
1836 python \
19- # gpg keys listed at https://github.com/nodejs/node#release-keys
20- && for key in \
21- 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
22- FD3A5288F042B6850C66B31F09FE44734EB7990E \
23- 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
24- DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
25- C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
26- B9AE9905FFD7803F25714661B63B535A4C206CA9 \
27- 77984A986EBC2AA786BC0F66B01FBB92821C587A \
28- 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \
29- 4ED778F539E3634C779C87C6D7062848A1AB005C \
30- A48C2BEE680E841632CD4E44F07496B3EB3C1762 \
31- B9E2F5981AA6E0CD28160D9FF13993A75599653C \
32- ; do \
33- gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
34- gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
35- gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
36- done \
37+ # gpg keys listed at https://github.com/nodejs/node#release-keys
38+ && for key in \
39+ 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
40+ FD3A5288F042B6850C66B31F09FE44734EB7990E \
41+ 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
42+ DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
43+ C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
44+ B9AE9905FFD7803F25714661B63B535A4C206CA9 \
45+ 77984A986EBC2AA786BC0F66B01FBB92821C587A \
46+ 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \
47+ 4ED778F539E3634C779C87C6D7062848A1AB005C \
48+ A48C2BEE680E841632CD4E44F07496B3EB3C1762 \
49+ B9E2F5981AA6E0CD28160D9FF13993A75599653C \
50+ ; do \
51+ gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
52+ gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
53+ gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
54+ done \
3755 && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
3856 && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
3957 && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
@@ -43,10 +61,13 @@ RUN addgroup -g 1000 node \
4361 && ./configure \
4462 && make -j$(getconf _NPROCESSORS_ONLN) V= \
4563 && make install \
46- && apk del .build-deps \
64+ && apk del .build-deps-full \
4765 && cd .. \
4866 && rm -Rf "node-v$NODE_VERSION" \
49- && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
67+ && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
68+ fi \
69+ && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
70+ && apk del .build-deps
5071
5172ENV YARN_VERSION 1.19.1
5273
0 commit comments