Skip to content

Commit 1275bfb

Browse files
Merge pull request #1026 from LaurentGoderre/unofficial-alpine
Try to download pre-built alpine binary before building
2 parents 1e228b0 + 93c5e09 commit 1275bfb

File tree

6 files changed

+206
-95
lines changed

6 files changed

+206
-95
lines changed

10/alpine/Dockerfile

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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

5172
ENV YARN_VERSION 1.19.1
5273

12/alpine/Dockerfile

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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="f1c73636c4d345c4aefd65cc959f793d7bb795200d43e19e418d7811670b03dd" \
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

5172
ENV YARN_VERSION 1.19.1
5273

13/alpine/Dockerfile

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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="5f40392e14e81a566c06f4abcbe735575f2d7045709211eb7245ef8f67896bee" \
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

5172
ENV YARN_VERSION 1.19.1
5273

8/alpine/Dockerfile

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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="39276723f03e4adaa9f2eeded8653ca6b74d3df23ac70a3455a28c51f0cf0001" \
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

5172
ENV YARN_VERSION 1.19.1
5273

0 commit comments

Comments
 (0)