Skip to content

Commit 081b462

Browse files
Try to download pre-built alpine binary before building
1 parent 281e720 commit 081b462

6 files changed

Lines changed: 168 additions & 72 deletions

File tree

10/alpine/Dockerfile

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,18 @@ FROM alpine:3.9
22

33
ENV NODE_VERSION 10.15.3
44

5-
RUN addgroup -g 1000 node \
5+
RUN ARCH= && alpineArch="$(arch)" \
6+
&& case "${alpineArch##*-}" in \
7+
x86_64) ARCH='x64';; \
8+
*) echo "unsupported architecture"; exit 1 ;; \
9+
esac \
10+
&& addgroup -g 1000 node \
611
&& adduser -u 1000 -G node -s /bin/sh -D node \
712
&& apk add --no-cache \
813
libstdc++ \
914
&& apk add --no-cache --virtual .build-deps \
10-
binutils-gold \
11-
curl \
12-
g++ \
13-
gcc \
14-
gnupg \
15-
libgcc \
16-
linux-headers \
17-
make \
18-
python \
15+
curl \
16+
gnupg \
1917
# gpg keys listed at https://github.com/nodejs/node#release-keys
2018
&& for key in \
2119
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
@@ -34,6 +32,23 @@ RUN addgroup -g 1000 node \
3432
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
3533
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
3634
done \
35+
&& ( \
36+
curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
37+
&& curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/SHASUMS256.txt" \
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 \
41+
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
42+
) || ( \
43+
# backup build
44+
apk add --no-cache --virtual .build-deps \
45+
binutils-gold \
46+
g++ \
47+
gcc \
48+
libgcc \
49+
linux-headers \
50+
make \
51+
python \
3752
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
3853
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
3954
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
@@ -43,10 +58,11 @@ RUN addgroup -g 1000 node \
4358
&& ./configure \
4459
&& make -j$(getconf _NPROCESSORS_ONLN) V= \
4560
&& make install \
46-
&& apk del .build-deps \
4761
&& cd .. \
4862
&& rm -Rf "node-v$NODE_VERSION" \
49-
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
63+
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
64+
) \
65+
&& apk del .build-deps
5066

5167
ENV YARN_VERSION 1.13.0
5268

11/alpine/Dockerfile

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,18 @@ FROM alpine:3.9
22

33
ENV NODE_VERSION 11.14.0
44

5-
RUN addgroup -g 1000 node \
5+
RUN ARCH= && alpineArch="$(arch)" \
6+
&& case "${alpineArch##*-}" in \
7+
x86_64) ARCH='x64';; \
8+
*) echo "unsupported architecture"; exit 1 ;; \
9+
esac \
10+
&& addgroup -g 1000 node \
611
&& adduser -u 1000 -G node -s /bin/sh -D node \
712
&& apk add --no-cache \
813
libstdc++ \
914
&& apk add --no-cache --virtual .build-deps \
10-
binutils-gold \
11-
curl \
12-
g++ \
13-
gcc \
14-
gnupg \
15-
libgcc \
16-
linux-headers \
17-
make \
18-
python \
15+
curl \
16+
gnupg \
1917
# gpg keys listed at https://github.com/nodejs/node#release-keys
2018
&& for key in \
2119
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
@@ -34,6 +32,23 @@ RUN addgroup -g 1000 node \
3432
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
3533
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
3634
done \
35+
&& ( \
36+
curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
37+
&& curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/SHASUMS256.txt" \
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 \
41+
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
42+
) || ( \
43+
# backup build
44+
apk add --no-cache --virtual .build-deps \
45+
binutils-gold \
46+
g++ \
47+
gcc \
48+
libgcc \
49+
linux-headers \
50+
make \
51+
python \
3752
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
3853
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
3954
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
@@ -43,10 +58,11 @@ RUN addgroup -g 1000 node \
4358
&& ./configure \
4459
&& make -j$(getconf _NPROCESSORS_ONLN) V= \
4560
&& make install \
46-
&& apk del .build-deps \
4761
&& cd .. \
4862
&& rm -Rf "node-v$NODE_VERSION" \
49-
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
63+
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
64+
) \
65+
&& apk del .build-deps
5066

5167
ENV YARN_VERSION 1.15.2
5268

12/alpine/Dockerfile

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,18 @@ FROM alpine:3.9
22

33
ENV NODE_VERSION 12.0.0
44

5-
RUN addgroup -g 1000 node \
5+
RUN ARCH= && alpineArch="$(arch)" \
6+
&& case "${alpineArch##*-}" in \
7+
x86_64) ARCH='x64';; \
8+
*) echo "unsupported architecture"; exit 1 ;; \
9+
esac \
10+
&& addgroup -g 1000 node \
611
&& adduser -u 1000 -G node -s /bin/sh -D node \
712
&& apk add --no-cache \
813
libstdc++ \
914
&& apk add --no-cache --virtual .build-deps \
10-
binutils-gold \
11-
curl \
12-
g++ \
13-
gcc \
14-
gnupg \
15-
libgcc \
16-
linux-headers \
17-
make \
18-
python \
15+
curl \
16+
gnupg \
1917
# gpg keys listed at https://github.com/nodejs/node#release-keys
2018
&& for key in \
2119
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
@@ -34,6 +32,23 @@ RUN addgroup -g 1000 node \
3432
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
3533
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
3634
done \
35+
&& ( \
36+
curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
37+
&& curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/SHASUMS256.txt" \
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 \
41+
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
42+
) || ( \
43+
# backup build
44+
apk add --no-cache --virtual .build-deps \
45+
binutils-gold \
46+
g++ \
47+
gcc \
48+
libgcc \
49+
linux-headers \
50+
make \
51+
python \
3752
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
3853
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
3954
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
@@ -43,10 +58,11 @@ RUN addgroup -g 1000 node \
4358
&& ./configure \
4459
&& make -j$(getconf _NPROCESSORS_ONLN) V= \
4560
&& make install \
46-
&& apk del .build-deps \
4761
&& cd .. \
4862
&& rm -Rf "node-v$NODE_VERSION" \
49-
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
63+
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
64+
) \
65+
&& apk del .build-deps
5066

5167
ENV YARN_VERSION 1.15.2
5268

6/alpine/Dockerfile

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,18 @@ FROM alpine:3.9
22

33
ENV NODE_VERSION 6.17.1
44

5-
RUN addgroup -g 1000 node \
5+
RUN ARCH= && alpineArch="$(arch)" \
6+
&& case "${alpineArch##*-}" in \
7+
x86_64) ARCH='x64';; \
8+
*) echo "unsupported architecture"; exit 1 ;; \
9+
esac \
10+
&& addgroup -g 1000 node \
611
&& adduser -u 1000 -G node -s /bin/sh -D node \
712
&& apk add --no-cache \
813
libstdc++ \
914
&& apk add --no-cache --virtual .build-deps \
10-
binutils-gold \
11-
curl \
12-
g++ \
13-
gcc \
14-
gnupg \
15-
libgcc \
16-
linux-headers \
17-
make \
18-
python \
15+
curl \
16+
gnupg \
1917
# gpg keys listed at https://github.com/nodejs/node#release-keys
2018
&& for key in \
2119
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
@@ -34,6 +32,23 @@ RUN addgroup -g 1000 node \
3432
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
3533
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
3634
done \
35+
&& ( \
36+
curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
37+
&& curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/SHASUMS256.txt" \
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 \
41+
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
42+
) || ( \
43+
# backup build
44+
apk add --no-cache --virtual .build-deps \
45+
binutils-gold \
46+
g++ \
47+
gcc \
48+
libgcc \
49+
linux-headers \
50+
make \
51+
python \
3752
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
3853
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
3954
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
@@ -43,10 +58,11 @@ RUN addgroup -g 1000 node \
4358
&& ./configure \
4459
&& make -j$(getconf _NPROCESSORS_ONLN) V= \
4560
&& make install \
46-
&& apk del .build-deps \
4761
&& cd .. \
4862
&& rm -Rf "node-v$NODE_VERSION" \
49-
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
63+
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
64+
) \
65+
&& apk del .build-deps
5066

5167
ENV YARN_VERSION 1.15.2
5268

8/alpine/Dockerfile

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,18 @@ FROM alpine:3.9
22

33
ENV NODE_VERSION 8.16.0
44

5-
RUN addgroup -g 1000 node \
5+
RUN ARCH= && alpineArch="$(arch)" \
6+
&& case "${alpineArch##*-}" in \
7+
x86_64) ARCH='x64';; \
8+
*) echo "unsupported architecture"; exit 1 ;; \
9+
esac \
10+
&& addgroup -g 1000 node \
611
&& adduser -u 1000 -G node -s /bin/sh -D node \
712
&& apk add --no-cache \
813
libstdc++ \
914
&& apk add --no-cache --virtual .build-deps \
10-
binutils-gold \
11-
curl \
12-
g++ \
13-
gcc \
14-
gnupg \
15-
libgcc \
16-
linux-headers \
17-
make \
18-
python \
15+
curl \
16+
gnupg \
1917
# gpg keys listed at https://github.com/nodejs/node#release-keys
2018
&& for key in \
2119
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
@@ -34,6 +32,23 @@ RUN addgroup -g 1000 node \
3432
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
3533
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
3634
done \
35+
&& ( \
36+
curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
37+
&& curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/SHASUMS256.txt" \
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 \
41+
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
42+
) || ( \
43+
# backup build
44+
apk add --no-cache --virtual .build-deps \
45+
binutils-gold \
46+
g++ \
47+
gcc \
48+
libgcc \
49+
linux-headers \
50+
make \
51+
python \
3752
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
3853
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
3954
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
@@ -43,10 +58,11 @@ RUN addgroup -g 1000 node \
4358
&& ./configure \
4459
&& make -j$(getconf _NPROCESSORS_ONLN) V= \
4560
&& make install \
46-
&& apk del .build-deps \
4761
&& cd .. \
4862
&& rm -Rf "node-v$NODE_VERSION" \
49-
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
63+
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
64+
) \
65+
&& apk del .build-deps
5066

5167
ENV YARN_VERSION 1.15.2
5268

0 commit comments

Comments
 (0)