Skip to content

Commit 49089bd

Browse files
committed
Add Node.js "core" image
This is an image without npm or yarn installed, suitable for multi-stage builds. Closes #404
1 parent cefe862 commit 49089bd

File tree

8 files changed

+280
-12
lines changed

8 files changed

+280
-12
lines changed

.travis.yml

+20
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,11 @@ jobs:
107107
- NODE_VERSION: "10"
108108
- VARIANT: "stretch"
109109

110+
- stage: Build
111+
env:
112+
- NODE_VERSION: "10"
113+
- VARIANT: "core"
114+
110115
- stage: Build
111116
env:
112117
- NODE_VERSION: "6"
@@ -132,6 +137,11 @@ jobs:
132137
- NODE_VERSION: "6"
133138
- VARIANT: "stretch"
134139

140+
- stage: Build
141+
env:
142+
- NODE_VERSION: "6"
143+
- VARIANT: "core"
144+
135145
- stage: Build
136146
env:
137147
- NODE_VERSION: "8"
@@ -157,6 +167,11 @@ jobs:
157167
- NODE_VERSION: "8"
158168
- VARIANT: "stretch"
159169

170+
- stage: Build
171+
env:
172+
- NODE_VERSION: "8"
173+
- VARIANT: "core"
174+
160175
- stage: Build
161176
env:
162177
- NODE_VERSION: "9"
@@ -182,6 +197,11 @@ jobs:
182197
- NODE_VERSION: "9"
183198
- VARIANT: "stretch"
184199

200+
- stage: Build
201+
env:
202+
- NODE_VERSION: "9"
203+
- VARIANT: "core"
204+
185205
- stage: Build
186206
env:
187207
- NODE_VERSION: "chakracore/10"

10/core/Dockerfile

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
FROM debian:jessie-slim
2+
3+
RUN groupadd --gid 1000 node \
4+
&& useradd --uid 1000 --gid node --shell /bin/bash --create-home node
5+
6+
# gpg keys listed at https://github.com/nodejs/node#release-team
7+
RUN set -ex \
8+
&& for key in \
9+
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
10+
FD3A5288F042B6850C66B31F09FE44734EB7990E \
11+
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
12+
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
13+
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
14+
B9AE9905FFD7803F25714661B63B535A4C206CA9 \
15+
56730D5401028683275BD23C23EFEFE93C4CFFFE \
16+
77984A986EBC2AA786BC0F66B01FBB92821C587A \
17+
; do \
18+
gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
19+
gpg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
20+
gpg --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
21+
done
22+
23+
ENV NODE_VERSION 10.3.0
24+
25+
RUN buildDeps='ca-certificates curl xz-utils' \
26+
ARCH= && dpkgArch="$(dpkg --print-architecture)" \
27+
&& case "${dpkgArch##*-}" in \
28+
amd64) ARCH='x64';; \
29+
ppc64el) ARCH='ppc64le';; \
30+
s390x) ARCH='s390x';; \
31+
arm64) ARCH='arm64';; \
32+
armhf) ARCH='armv7l';; \
33+
i386) ARCH='x86';; \
34+
*) echo "unsupported architecture"; exit 1 ;; \
35+
esac \
36+
&& set -x \
37+
&& apt-get update && apt-get install -y $buildDeps --no-install-recommends \
38+
&& rm -rf /var/lib/apt/lists/* \
39+
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \
40+
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
41+
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
42+
&& grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
43+
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
44+
&& rm -rf /usr/local/lib/node_modules/ \
45+
&& rm -rf /usr/local/bin/npm \
46+
&& rm -rf /usr/local/bin/npx \
47+
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
48+
&& apt-get purge -y --auto-remove $buildDeps \
49+
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs
50+
51+
CMD [ "node" ]

6/architectures

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
bashbrew-arch variants
2-
arm32v7 jessie,onbuild,slim,stretch
3-
arm64v8 jessie,onbuild,slim,stretch
4-
amd64 jessie,alpine,onbuild,slim,stretch
5-
i386 jessie,onbuild,slim,stretch
6-
ppc64le jessie,onbuild,slim,stretch
7-
s390x jessie,onbuild,slim,stretch
2+
arm32v7 jessie,onbuild,slim,stretch,core
3+
arm64v8 jessie,onbuild,slim,stretch,core
4+
amd64 jessie,alpine,onbuild,slim,stretch,core
5+
i386 jessie,onbuild,slim,stretch,core
6+
ppc64le jessie,onbuild,slim,stretch,core
7+
s390x jessie,onbuild,slim,stretch,core

6/core/Dockerfile

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
FROM debian:jessie-slim
2+
3+
RUN groupadd --gid 1000 node \
4+
&& useradd --uid 1000 --gid node --shell /bin/bash --create-home node
5+
6+
# gpg keys listed at https://github.com/nodejs/node#release-team
7+
RUN set -ex \
8+
&& for key in \
9+
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
10+
FD3A5288F042B6850C66B31F09FE44734EB7990E \
11+
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
12+
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
13+
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
14+
B9AE9905FFD7803F25714661B63B535A4C206CA9 \
15+
56730D5401028683275BD23C23EFEFE93C4CFFFE \
16+
77984A986EBC2AA786BC0F66B01FBB92821C587A \
17+
; do \
18+
gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
19+
gpg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
20+
gpg --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
21+
done
22+
23+
ENV NODE_VERSION 6.14.2
24+
25+
RUN buildDeps='ca-certificates curl xz-utils' \
26+
ARCH= && dpkgArch="$(dpkg --print-architecture)" \
27+
&& case "${dpkgArch##*-}" in \
28+
amd64) ARCH='x64';; \
29+
ppc64el) ARCH='ppc64le';; \
30+
s390x) ARCH='s390x';; \
31+
arm64) ARCH='arm64';; \
32+
armhf) ARCH='armv7l';; \
33+
i386) ARCH='x86';; \
34+
*) echo "unsupported architecture"; exit 1 ;; \
35+
esac \
36+
&& set -x \
37+
&& apt-get update && apt-get install -y $buildDeps --no-install-recommends \
38+
&& rm -rf /var/lib/apt/lists/* \
39+
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \
40+
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
41+
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
42+
&& grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
43+
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
44+
&& rm -rf /usr/local/lib/node_modules/ \
45+
&& rm -rf /usr/local/bin/npm \
46+
&& rm -rf /usr/local/bin/npx \
47+
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
48+
&& apt-get purge -y --auto-remove $buildDeps \
49+
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs
50+
51+
CMD [ "node" ]

8/core/Dockerfile

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
FROM debian:jessie-slim
2+
3+
RUN groupadd --gid 1000 node \
4+
&& useradd --uid 1000 --gid node --shell /bin/bash --create-home node
5+
6+
# gpg keys listed at https://github.com/nodejs/node#release-team
7+
RUN set -ex \
8+
&& for key in \
9+
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
10+
FD3A5288F042B6850C66B31F09FE44734EB7990E \
11+
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
12+
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
13+
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
14+
B9AE9905FFD7803F25714661B63B535A4C206CA9 \
15+
56730D5401028683275BD23C23EFEFE93C4CFFFE \
16+
77984A986EBC2AA786BC0F66B01FBB92821C587A \
17+
; do \
18+
gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
19+
gpg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
20+
gpg --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
21+
done
22+
23+
ENV NODE_VERSION 8.11.2
24+
25+
RUN buildDeps='ca-certificates curl xz-utils' \
26+
ARCH= && dpkgArch="$(dpkg --print-architecture)" \
27+
&& case "${dpkgArch##*-}" in \
28+
amd64) ARCH='x64';; \
29+
ppc64el) ARCH='ppc64le';; \
30+
s390x) ARCH='s390x';; \
31+
arm64) ARCH='arm64';; \
32+
armhf) ARCH='armv7l';; \
33+
i386) ARCH='x86';; \
34+
*) echo "unsupported architecture"; exit 1 ;; \
35+
esac \
36+
&& set -x \
37+
&& apt-get update && apt-get install -y $buildDeps --no-install-recommends \
38+
&& rm -rf /var/lib/apt/lists/* \
39+
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \
40+
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
41+
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
42+
&& grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
43+
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
44+
&& rm -rf /usr/local/lib/node_modules/ \
45+
&& rm -rf /usr/local/bin/npm \
46+
&& rm -rf /usr/local/bin/npx \
47+
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
48+
&& apt-get purge -y --auto-remove $buildDeps \
49+
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs
50+
51+
CMD [ "node" ]

9/core/Dockerfile

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
FROM debian:jessie-slim
2+
3+
RUN groupadd --gid 1000 node \
4+
&& useradd --uid 1000 --gid node --shell /bin/bash --create-home node
5+
6+
# gpg keys listed at https://github.com/nodejs/node#release-team
7+
RUN set -ex \
8+
&& for key in \
9+
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
10+
FD3A5288F042B6850C66B31F09FE44734EB7990E \
11+
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
12+
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
13+
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
14+
B9AE9905FFD7803F25714661B63B535A4C206CA9 \
15+
56730D5401028683275BD23C23EFEFE93C4CFFFE \
16+
77984A986EBC2AA786BC0F66B01FBB92821C587A \
17+
; do \
18+
gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
19+
gpg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
20+
gpg --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
21+
done
22+
23+
ENV NODE_VERSION 9.11.1
24+
25+
RUN buildDeps='ca-certificates curl xz-utils' \
26+
ARCH= && dpkgArch="$(dpkg --print-architecture)" \
27+
&& case "${dpkgArch##*-}" in \
28+
amd64) ARCH='x64';; \
29+
ppc64el) ARCH='ppc64le';; \
30+
s390x) ARCH='s390x';; \
31+
arm64) ARCH='arm64';; \
32+
armhf) ARCH='armv7l';; \
33+
i386) ARCH='x86';; \
34+
*) echo "unsupported architecture"; exit 1 ;; \
35+
esac \
36+
&& set -x \
37+
&& apt-get update && apt-get install -y $buildDeps --no-install-recommends \
38+
&& rm -rf /var/lib/apt/lists/* \
39+
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \
40+
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
41+
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
42+
&& grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
43+
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
44+
&& rm -rf /usr/local/lib/node_modules/ \
45+
&& rm -rf /usr/local/bin/npm \
46+
&& rm -rf /usr/local/bin/npx \
47+
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
48+
&& apt-get purge -y --auto-remove $buildDeps \
49+
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs
50+
51+
CMD [ "node" ]

Dockerfile-core.template

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
FROM debian:jessie-slim
2+
3+
RUN groupadd --gid 1000 node \
4+
&& useradd --uid 1000 --gid node --shell /bin/bash --create-home node
5+
6+
# gpg keys listed at https://github.com/nodejs/node#release-team
7+
RUN set -ex \
8+
&& for key in \
9+
"${NODE_KEYS[@]}"
10+
; do \
11+
gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
12+
gpg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
13+
gpg --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
14+
done
15+
16+
ENV NODE_VERSION 0.0.0
17+
18+
RUN buildDeps='ca-certificates curl xz-utils' \
19+
ARCH= && dpkgArch="$(dpkg --print-architecture)" \
20+
&& case "${dpkgArch##*-}" in \
21+
amd64) ARCH='x64';; \
22+
ppc64el) ARCH='ppc64le';; \
23+
s390x) ARCH='s390x';; \
24+
arm64) ARCH='arm64';; \
25+
armhf) ARCH='armv7l';; \
26+
i386) ARCH='x86';; \
27+
*) echo "unsupported architecture"; exit 1 ;; \
28+
esac \
29+
&& set -x \
30+
&& apt-get update && apt-get install -y $buildDeps --no-install-recommends \
31+
&& rm -rf /var/lib/apt/lists/* \
32+
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \
33+
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
34+
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
35+
&& grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
36+
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
37+
&& rm -rf /usr/local/lib/node_modules/ \
38+
&& rm -rf /usr/local/bin/npm \
39+
&& rm -rf /usr/local/bin/npx \
40+
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
41+
&& apt-get purge -y --auto-remove $buildDeps \
42+
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs
43+
44+
CMD [ "node" ]

architectures

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
bashbrew-arch variants
22
arm32v6 alpine
3-
arm32v7 jessie,onbuild,slim,stretch
4-
arm64v8 jessie,alpine,onbuild,slim,stretch
5-
amd64 jessie,alpine,onbuild,slim,stretch
6-
i386 jessie,alpine,onbuild,slim,stretch
7-
ppc64le jessie,alpine,onbuild,slim,stretch
8-
s390x jessie,alpine,onbuild,slim,stretch
3+
arm32v7 jessie,onbuild,slim,stretch,core
4+
arm64v8 jessie,alpine,onbuild,slim,stretch,core
5+
amd64 jessie,alpine,onbuild,slim,stretch,core
6+
i386 jessie,alpine,onbuild,slim,stretch,core
7+
ppc64le jessie,alpine,onbuild,slim,stretch,core
8+
s390x jessie,alpine,onbuild,slim,stretch,core

0 commit comments

Comments
 (0)