Skip to content

Commit ccd124b

Browse files
Merge pull request #1996 from yehonatanz/remove-unused-openssl-headers
Remove unused openssl headers
2 parents 75c9164 + e148eb7 commit ccd124b

File tree

9 files changed

+81
-49
lines changed

9 files changed

+81
-49
lines changed

18/alpine3.17/Dockerfile

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ RUN addgroup -g 1000 node \
88
libstdc++ \
99
&& apk add --no-cache --virtual .build-deps \
1010
curl \
11-
&& ARCH= && alpineArch="$(apk --print-arch)" \
11+
&& ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" \
1212
&& case "${alpineArch##*-}" in \
13-
x86_64) \
14-
ARCH='x64' \
15-
CHECKSUM="b02028add9898575516a2626a5f1a262f080291d8f253ba1fd61cedb0e476591" \
16-
;; \
13+
x86_64) ARCH='x64' CHECKSUM="b02028add9898575516a2626a5f1a262f080291d8f253ba1fd61cedb0e476591" OPENSSL_ARCH=linux-x86_64;; \
14+
x86) OPENSSL_ARCH=linux-elf;; \
15+
aarch64) OPENSSL_ARCH=linux-aarch64;; \
16+
arm*) OPENSSL_ARCH=linux-armv4;; \
17+
ppc64le) OPENSSL_ARCH=linux-ppc64le;; \
18+
s390x) OPENSSL_ARCH=linux-s390x;; \
1719
*) ;; \
1820
esac \
1921
&& if [ -n "${CHECKSUM}" ]; then \
@@ -70,6 +72,8 @@ RUN addgroup -g 1000 node \
7072
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
7173
fi \
7274
&& rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
75+
# Remove unused OpenSSL headers to save ~34MB. See this NodeJS issue: https://github.com/nodejs/node/issues/46451
76+
&& find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; \
7377
&& apk del .build-deps \
7478
# smoke tests
7579
&& node --version \

18/alpine3.18/Dockerfile

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ RUN addgroup -g 1000 node \
88
libstdc++ \
99
&& apk add --no-cache --virtual .build-deps \
1010
curl \
11-
&& ARCH= && alpineArch="$(apk --print-arch)" \
11+
&& ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" \
1212
&& case "${alpineArch##*-}" in \
13-
x86_64) \
14-
ARCH='x64' \
15-
CHECKSUM="b02028add9898575516a2626a5f1a262f080291d8f253ba1fd61cedb0e476591" \
16-
;; \
13+
x86_64) ARCH='x64' CHECKSUM="b02028add9898575516a2626a5f1a262f080291d8f253ba1fd61cedb0e476591" OPENSSL_ARCH=linux-x86_64;; \
14+
x86) OPENSSL_ARCH=linux-elf;; \
15+
aarch64) OPENSSL_ARCH=linux-aarch64;; \
16+
arm*) OPENSSL_ARCH=linux-armv4;; \
17+
ppc64le) OPENSSL_ARCH=linux-ppc64le;; \
18+
s390x) OPENSSL_ARCH=linux-s390x;; \
1719
*) ;; \
1820
esac \
1921
&& if [ -n "${CHECKSUM}" ]; then \
@@ -70,6 +72,8 @@ RUN addgroup -g 1000 node \
7072
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
7173
fi \
7274
&& rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
75+
# Remove unused OpenSSL headers to save ~34MB. See this NodeJS issue: https://github.com/nodejs/node/issues/46451
76+
&& find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; \
7377
&& apk del .build-deps \
7478
# smoke tests
7579
&& node --version \

20/alpine3.17/Dockerfile

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ RUN addgroup -g 1000 node \
88
libstdc++ \
99
&& apk add --no-cache --virtual .build-deps \
1010
curl \
11-
&& ARCH= && alpineArch="$(apk --print-arch)" \
11+
&& ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" \
1212
&& case "${alpineArch##*-}" in \
13-
x86_64) \
14-
ARCH='x64' \
15-
CHECKSUM="a3cfa3eabebdcbb677256227b9ff44dad88bff37fd9de886077d670dc8fddb6b" \
16-
;; \
13+
x86_64) ARCH='x64' CHECKSUM="a3cfa3eabebdcbb677256227b9ff44dad88bff37fd9de886077d670dc8fddb6b" OPENSSL_ARCH=linux-x86_64;; \
14+
x86) OPENSSL_ARCH=linux-elf;; \
15+
aarch64) OPENSSL_ARCH=linux-aarch64;; \
16+
arm*) OPENSSL_ARCH=linux-armv4;; \
17+
ppc64le) OPENSSL_ARCH=linux-ppc64le;; \
18+
s390x) OPENSSL_ARCH=linux-s390x;; \
1719
*) ;; \
1820
esac \
1921
&& if [ -n "${CHECKSUM}" ]; then \
@@ -70,6 +72,8 @@ RUN addgroup -g 1000 node \
7072
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
7173
fi \
7274
&& rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
75+
# Remove unused OpenSSL headers to save ~34MB. See this NodeJS issue: https://github.com/nodejs/node/issues/46451
76+
&& find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; \
7377
&& apk del .build-deps \
7478
# smoke tests
7579
&& node --version \

20/alpine3.18/Dockerfile

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ RUN addgroup -g 1000 node \
88
libstdc++ \
99
&& apk add --no-cache --virtual .build-deps \
1010
curl \
11-
&& ARCH= && alpineArch="$(apk --print-arch)" \
11+
&& ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" \
1212
&& case "${alpineArch##*-}" in \
13-
x86_64) \
14-
ARCH='x64' \
15-
CHECKSUM="a3cfa3eabebdcbb677256227b9ff44dad88bff37fd9de886077d670dc8fddb6b" \
16-
;; \
13+
x86_64) ARCH='x64' CHECKSUM="a3cfa3eabebdcbb677256227b9ff44dad88bff37fd9de886077d670dc8fddb6b" OPENSSL_ARCH=linux-x86_64;; \
14+
x86) OPENSSL_ARCH=linux-elf;; \
15+
aarch64) OPENSSL_ARCH=linux-aarch64;; \
16+
arm*) OPENSSL_ARCH=linux-armv4;; \
17+
ppc64le) OPENSSL_ARCH=linux-ppc64le;; \
18+
s390x) OPENSSL_ARCH=linux-s390x;; \
1719
*) ;; \
1820
esac \
1921
&& if [ -n "${CHECKSUM}" ]; then \
@@ -70,6 +72,8 @@ RUN addgroup -g 1000 node \
7072
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
7173
fi \
7274
&& rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
75+
# Remove unused OpenSSL headers to save ~34MB. See this NodeJS issue: https://github.com/nodejs/node/issues/46451
76+
&& find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; \
7377
&& apk del .build-deps \
7478
# smoke tests
7579
&& node --version \

21/alpine3.17/Dockerfile

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ RUN addgroup -g 1000 node \
88
libstdc++ \
99
&& apk add --no-cache --virtual .build-deps \
1010
curl \
11-
&& ARCH= && alpineArch="$(apk --print-arch)" \
11+
&& ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" \
1212
&& case "${alpineArch##*-}" in \
13-
x86_64) \
14-
ARCH='x64' \
15-
CHECKSUM="987dac3f01a5b81bd3674edcf984161ed145995f2f11e7b5893249af5fa237e8" \
16-
;; \
13+
x86_64) ARCH='x64' CHECKSUM="987dac3f01a5b81bd3674edcf984161ed145995f2f11e7b5893249af5fa237e8" OPENSSL_ARCH=linux-x86_64;; \
14+
x86) OPENSSL_ARCH=linux-elf;; \
15+
aarch64) OPENSSL_ARCH=linux-aarch64;; \
16+
arm*) OPENSSL_ARCH=linux-armv4;; \
17+
ppc64le) OPENSSL_ARCH=linux-ppc64le;; \
18+
s390x) OPENSSL_ARCH=linux-s390x;; \
1719
*) ;; \
1820
esac \
1921
&& if [ -n "${CHECKSUM}" ]; then \
@@ -70,6 +72,8 @@ RUN addgroup -g 1000 node \
7072
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
7173
fi \
7274
&& rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
75+
# Remove unused OpenSSL headers to save ~34MB. See this NodeJS issue: https://github.com/nodejs/node/issues/46451
76+
&& find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; \
7377
&& apk del .build-deps \
7478
# smoke tests
7579
&& node --version \

21/alpine3.18/Dockerfile

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ RUN addgroup -g 1000 node \
88
libstdc++ \
99
&& apk add --no-cache --virtual .build-deps \
1010
curl \
11-
&& ARCH= && alpineArch="$(apk --print-arch)" \
11+
&& ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" \
1212
&& case "${alpineArch##*-}" in \
13-
x86_64) \
14-
ARCH='x64' \
15-
CHECKSUM="987dac3f01a5b81bd3674edcf984161ed145995f2f11e7b5893249af5fa237e8" \
16-
;; \
13+
x86_64) ARCH='x64' CHECKSUM="987dac3f01a5b81bd3674edcf984161ed145995f2f11e7b5893249af5fa237e8" OPENSSL_ARCH=linux-x86_64;; \
14+
x86) OPENSSL_ARCH=linux-elf;; \
15+
aarch64) OPENSSL_ARCH=linux-aarch64;; \
16+
arm*) OPENSSL_ARCH=linux-armv4;; \
17+
ppc64le) OPENSSL_ARCH=linux-ppc64le;; \
18+
s390x) OPENSSL_ARCH=linux-s390x;; \
1719
*) ;; \
1820
esac \
1921
&& if [ -n "${CHECKSUM}" ]; then \
@@ -70,6 +72,8 @@ RUN addgroup -g 1000 node \
7072
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
7173
fi \
7274
&& rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
75+
# Remove unused OpenSSL headers to save ~34MB. See this NodeJS issue: https://github.com/nodejs/node/issues/46451
76+
&& find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; \
7377
&& apk del .build-deps \
7478
# smoke tests
7579
&& node --version \

21/bookworm-slim/Dockerfile

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ RUN groupadd --gid 1000 node \
55

66
ENV NODE_VERSION 21.1.0
77

8-
RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
8+
RUN ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" \
99
&& case "${dpkgArch##*-}" in \
10-
amd64) ARCH='x64';; \
11-
ppc64el) ARCH='ppc64le';; \
12-
s390x) ARCH='s390x';; \
13-
arm64) ARCH='arm64';; \
14-
armhf) ARCH='armv7l';; \
15-
i386) ARCH='x86';; \
10+
amd64) ARCH='x64' OPENSSL_ARCH='linux-x86_64';; \
11+
ppc64el) ARCH='ppc64le' OPENSSL_ARCH='linux-ppc64le';; \
12+
s390x) ARCH='s390x' OPENSSL_ARCH='linux*-s390x';; \
13+
arm64) ARCH='arm64' OPENSSL_ARCH='linux-aarch64';; \
14+
armhf) ARCH='armv7l' OPENSSL_ARCH='linux-armv4';; \
15+
i386) ARCH='x86' OPENSSL_ARCH='linux-elf';; \
1616
*) echo "unsupported architecture"; exit 1 ;; \
1717
esac \
1818
&& set -ex \
@@ -46,6 +46,8 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
4646
&& grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
4747
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
4848
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
49+
# Remove unused OpenSSL headers to save ~34MB. See this NodeJS issue: https://github.com/nodejs/node/issues/46451
50+
&& find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; \
4951
&& apt-mark auto '.*' > /dev/null \
5052
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
5153
| awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \

21/bullseye-slim/Dockerfile

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ RUN groupadd --gid 1000 node \
55

66
ENV NODE_VERSION 21.1.0
77

8-
RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
8+
RUN ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" \
99
&& case "${dpkgArch##*-}" in \
10-
amd64) ARCH='x64';; \
11-
ppc64el) ARCH='ppc64le';; \
12-
s390x) ARCH='s390x';; \
13-
arm64) ARCH='arm64';; \
14-
armhf) ARCH='armv7l';; \
15-
i386) ARCH='x86';; \
10+
amd64) ARCH='x64' OPENSSL_ARCH='linux-x86_64';; \
11+
ppc64el) ARCH='ppc64le' OPENSSL_ARCH='linux-ppc64le';; \
12+
s390x) ARCH='s390x' OPENSSL_ARCH='linux*-s390x';; \
13+
arm64) ARCH='arm64' OPENSSL_ARCH='linux-aarch64';; \
14+
armhf) ARCH='armv7l' OPENSSL_ARCH='linux-armv4';; \
15+
i386) ARCH='x86' OPENSSL_ARCH='linux-elf';; \
1616
*) echo "unsupported architecture"; exit 1 ;; \
1717
esac \
1818
&& set -ex \
@@ -46,6 +46,8 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
4646
&& grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
4747
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
4848
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
49+
# Remove unused OpenSSL headers to save ~34MB. See this NodeJS issue: https://github.com/nodejs/node/issues/46451
50+
&& find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; \
4951
&& apt-mark auto '.*' > /dev/null \
5052
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
5153
| awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \

Dockerfile-alpine.template

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ RUN addgroup -g 1000 node \
88
libstdc++ \
99
&& apk add --no-cache --virtual .build-deps \
1010
curl \
11-
&& ARCH= && alpineArch="$(apk --print-arch)" \
11+
&& ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" \
1212
&& case "${alpineArch##*-}" in \
13-
x86_64) \
14-
ARCH='x64' \
15-
CHECKSUM=CHECKSUM_x64 \
16-
;; \
13+
x86_64) ARCH='x64' CHECKSUM=CHECKSUM_x64 OPENSSL_ARCH=linux-x86_64;; \
14+
x86) OPENSSL_ARCH=linux-elf;; \
15+
aarch64) OPENSSL_ARCH=linux-aarch64;; \
16+
arm*) OPENSSL_ARCH=linux-armv4;; \
17+
ppc64le) OPENSSL_ARCH=linux-ppc64le;; \
18+
s390x) OPENSSL_ARCH=linux-s390x;; \
1719
*) ;; \
1820
esac \
1921
&& if [ -n "${CHECKSUM}" ]; then \
@@ -60,6 +62,8 @@ RUN addgroup -g 1000 node \
6062
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
6163
fi \
6264
&& rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
65+
# Remove unused OpenSSL headers to save ~34MB. See this NodeJS issue: https://github.com/nodejs/node/issues/46451
66+
&& find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; \
6367
&& apk del .build-deps \
6468
# smoke tests
6569
&& node --version \

0 commit comments

Comments
 (0)