Skip to content

Commit ced0aa8

Browse files
Added templates for generating the variants
1 parent 11400d9 commit ced0aa8

File tree

5 files changed

+114
-9
lines changed

5 files changed

+114
-9
lines changed

Dockerfile-onbuild.template

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
FROM node:0.0.0
2+
3+
RUN mkdir -p /usr/src/app
4+
WORKDIR /usr/src/app
5+
6+
ONBUILD COPY package.json /usr/src/app/
7+
ONBUILD RUN npm install
8+
ONBUILD COPY . /usr/src/app
9+
10+
CMD [ "npm", "start" ]

Dockerfile-slim.template

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
FROM buildpack-deps:jessie-curl
2+
3+
# gpg keys listed at https://github.com/nodejs/node
4+
RUN set -ex \
5+
&& for key in \
6+
9554F04D7259F04124DE6B476D5A82AC7E37093B \
7+
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
8+
0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93 \
9+
FD3A5288F042B6850C66B31F09FE44734EB7990E \
10+
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
11+
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
12+
B9AE9905FFD7803F25714661B63B535A4C206CA9 \
13+
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
14+
; do \
15+
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
16+
done
17+
18+
ENV NPM_CONFIG_LOGLEVEL info
19+
ENV NODE_VERSION 0.0.0
20+
21+
RUN buildDeps='xz-utils' \
22+
&& set -x \
23+
&& apt-get update && apt-get install -y $buildDeps --no-install-recommends \
24+
&& rm -rf /var/lib/apt/lists/* \
25+
&& curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" \
26+
&& curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
27+
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
28+
&& grep " node-v$NODE_VERSION-linux-x64.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
29+
&& tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr/local --strip-components=1 \
30+
&& rm "node-v$NODE_VERSION-linux-x64.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
31+
&& apt-get purge -y --auto-remove $buildDeps
32+
33+
CMD [ "node" ]

Dockerfile-wheezy.template

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
FROM buildpack-deps:wheezy
2+
3+
# gpg keys listed at https://github.com/nodejs/node
4+
RUN set -ex \
5+
&& for key in \
6+
9554F04D7259F04124DE6B476D5A82AC7E37093B \
7+
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
8+
0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93 \
9+
FD3A5288F042B6850C66B31F09FE44734EB7990E \
10+
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
11+
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
12+
B9AE9905FFD7803F25714661B63B535A4C206CA9 \
13+
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
14+
; do \
15+
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
16+
done
17+
18+
ENV NPM_CONFIG_LOGLEVEL info
19+
ENV NODE_VERSION 0.0.0
20+
21+
RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" \
22+
&& curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
23+
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
24+
&& grep " node-v$NODE_VERSION-linux-x64.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
25+
&& tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr/local --strip-components=1 \
26+
&& rm "node-v$NODE_VERSION-linux-x64.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
27+
28+
CMD [ "node" ]

Dockerfile.template

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
FROM buildpack-deps:jessie
2+
3+
# gpg keys listed at https://github.com/nodejs/node
4+
RUN set -ex \
5+
&& for key in \
6+
9554F04D7259F04124DE6B476D5A82AC7E37093B \
7+
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
8+
0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93 \
9+
FD3A5288F042B6850C66B31F09FE44734EB7990E \
10+
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
11+
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
12+
B9AE9905FFD7803F25714661B63B535A4C206CA9 \
13+
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
14+
; do \
15+
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
16+
done
17+
18+
ENV NPM_CONFIG_LOGLEVEL info
19+
ENV NODE_VERSION 0.0.0
20+
21+
RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" \
22+
&& curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
23+
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
24+
&& grep " node-v$NODE_VERSION-linux-x64.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
25+
&& tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr/local --strip-components=1 \
26+
&& rm "node-v$NODE_VERSION-linux-x64.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
27+
28+
CMD [ "node" ]

update.sh

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,21 @@ for version in "${versions[@]}"; do
1414
continue
1515
fi
1616

17-
fullVersion="$(curl -sSL --compressed 'https://nodejs.org/dist' | grep '<a href="v'"$version." | sed -E 's!.*<a href="v([^"/]+)/?".*!\1!' | cut -f 3 -d . | sort -n | tail -1)"
18-
(
19-
sed -E -i.bak '
20-
s/^(ENV NODE_VERSION) .*/\1 '"$version.$fullVersion"'/;
21-
' "$version/Dockerfile" "$version/slim/Dockerfile" "$version/wheezy/Dockerfile"
22-
rm $version/Dockerfile.bak $version/slim/Dockerfile.bak $version/wheezy/Dockerfile.bak
17+
for variant in default onbuild slim wheezy; do
18+
template="Dockerfile-$variant.template"
19+
dockerfile="$version/$variant/Dockerfile"
2320

24-
sed -E -i.bak 's/^(FROM node):.*/\1:'"$version.$fullVersion"'/' "$version/onbuild/Dockerfile"
25-
rm $version/onbuild/Dockerfile.bak
21+
if [[ "$variant" == "default" ]]; then
22+
template="Dockerfile.template"
23+
dockerfile="$version/Dockerfile"
24+
fi
2625

27-
)
26+
fullVersion="$(curl -sSL --compressed 'https://nodejs.org/dist' | grep '<a href="v'"$version." | sed -E 's!.*<a href="v([^"/]+)/?".*!\1!' | cut -f 3 -d . | sort -n | tail -1)"
27+
(
28+
cp $template $dockerfile
29+
sed -E -i.bak 's/^(ENV NODE_VERSION |FROM node:).*/\1'"$version.$fullVersion"'/' "$dockerfile"
30+
rm "$dockerfile.bak"
31+
32+
)
33+
done
2834
done

0 commit comments

Comments
 (0)