Skip to content

Commit e76dc47

Browse files
authored
Merge pull request #1198 from SimenB/keep-dynamically-linked-files
fix: keep dynamically linked files in slim images
2 parents cda5758 + 2caaf1a commit e76dc47

File tree

8 files changed

+144
-8
lines changed

8 files changed

+144
-8
lines changed

10/buster-slim/Dockerfile

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
1616
*) echo "unsupported architecture"; exit 1 ;; \
1717
esac \
1818
&& set -ex \
19-
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils --no-install-recommends \
19+
# libatomic1 for arm
20+
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils libatomic1 --no-install-recommends \
2021
&& rm -rf /var/lib/apt/lists/* \
2122
&& for key in \
2223
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
@@ -42,6 +43,13 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
4243
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
4344
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
4445
&& apt-mark auto '.*' > /dev/null \
46+
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
47+
| awk '/=>/ { print $(NF-1) }' \
48+
| sort -u \
49+
| xargs -r dpkg-query --search \
50+
| cut -d: -f1 \
51+
| sort -u \
52+
| xargs -r apt-mark manual \
4553
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
4654
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
4755
# smoke tests
@@ -51,6 +59,7 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
5159
ENV YARN_VERSION 1.21.1
5260

5361
RUN set -ex \
62+
&& savedAptMark="$(apt-mark showmanual)" \
5463
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr --no-install-recommends \
5564
&& rm -rf /var/lib/apt/lists/* \
5665
&& for key in \
@@ -69,6 +78,14 @@ RUN set -ex \
6978
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
7079
&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
7180
&& apt-mark auto '.*' > /dev/null \
81+
&& { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; } \
82+
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
83+
| awk '/=>/ { print $(NF-1) }' \
84+
| sort -u \
85+
| xargs -r dpkg-query --search \
86+
| cut -d: -f1 \
87+
| sort -u \
88+
| xargs -r apt-mark manual \
7289
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
7390
# smoke test
7491
&& yarn --version

10/jessie-slim/Dockerfile

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
1616
*) echo "unsupported architecture"; exit 1 ;; \
1717
esac \
1818
&& set -ex \
19-
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils --no-install-recommends \
19+
# libatomic1 for arm
20+
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils libatomic1 --no-install-recommends \
2021
&& rm -rf /var/lib/apt/lists/* \
2122
&& for key in \
2223
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
@@ -42,6 +43,13 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
4243
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
4344
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
4445
&& apt-mark auto '.*' > /dev/null \
46+
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
47+
| awk '/=>/ { print $(NF-1) }' \
48+
| sort -u \
49+
| xargs -r dpkg-query --search \
50+
| cut -d: -f1 \
51+
| sort -u \
52+
| xargs -r apt-mark manual \
4553
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
4654
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
4755
# smoke tests
@@ -51,6 +59,7 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
5159
ENV YARN_VERSION 1.21.1
5260

5361
RUN set -ex \
62+
&& savedAptMark="$(apt-mark showmanual)" \
5463
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr --no-install-recommends \
5564
&& rm -rf /var/lib/apt/lists/* \
5665
&& for key in \
@@ -69,6 +78,14 @@ RUN set -ex \
6978
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
7079
&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
7180
&& apt-mark auto '.*' > /dev/null \
81+
&& { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; } \
82+
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
83+
| awk '/=>/ { print $(NF-1) }' \
84+
| sort -u \
85+
| xargs -r dpkg-query --search \
86+
| cut -d: -f1 \
87+
| sort -u \
88+
| xargs -r apt-mark manual \
7289
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
7390
# smoke test
7491
&& yarn --version

10/stretch-slim/Dockerfile

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
1616
*) echo "unsupported architecture"; exit 1 ;; \
1717
esac \
1818
&& set -ex \
19-
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils --no-install-recommends \
19+
# libatomic1 for arm
20+
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils libatomic1 --no-install-recommends \
2021
&& rm -rf /var/lib/apt/lists/* \
2122
&& for key in \
2223
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
@@ -42,6 +43,13 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
4243
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
4344
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
4445
&& apt-mark auto '.*' > /dev/null \
46+
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
47+
| awk '/=>/ { print $(NF-1) }' \
48+
| sort -u \
49+
| xargs -r dpkg-query --search \
50+
| cut -d: -f1 \
51+
| sort -u \
52+
| xargs -r apt-mark manual \
4553
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
4654
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
4755
# smoke tests
@@ -51,6 +59,7 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
5159
ENV YARN_VERSION 1.21.1
5260

5361
RUN set -ex \
62+
&& savedAptMark="$(apt-mark showmanual)" \
5463
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr --no-install-recommends \
5564
&& rm -rf /var/lib/apt/lists/* \
5665
&& for key in \
@@ -69,6 +78,14 @@ RUN set -ex \
6978
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
7079
&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
7180
&& apt-mark auto '.*' > /dev/null \
81+
&& { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; } \
82+
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
83+
| awk '/=>/ { print $(NF-1) }' \
84+
| sort -u \
85+
| xargs -r dpkg-query --search \
86+
| cut -d: -f1 \
87+
| sort -u \
88+
| xargs -r apt-mark manual \
7289
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
7390
# smoke test
7491
&& yarn --version

12/buster-slim/Dockerfile

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
1616
*) echo "unsupported architecture"; exit 1 ;; \
1717
esac \
1818
&& set -ex \
19-
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils --no-install-recommends \
19+
# libatomic1 for arm
20+
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils libatomic1 --no-install-recommends \
2021
&& rm -rf /var/lib/apt/lists/* \
2122
&& for key in \
2223
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
@@ -42,6 +43,13 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
4243
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
4344
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
4445
&& apt-mark auto '.*' > /dev/null \
46+
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
47+
| awk '/=>/ { print $(NF-1) }' \
48+
| sort -u \
49+
| xargs -r dpkg-query --search \
50+
| cut -d: -f1 \
51+
| sort -u \
52+
| xargs -r apt-mark manual \
4553
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
4654
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
4755
# smoke tests
@@ -51,6 +59,7 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
5159
ENV YARN_VERSION 1.22.0
5260

5361
RUN set -ex \
62+
&& savedAptMark="$(apt-mark showmanual)" \
5463
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr --no-install-recommends \
5564
&& rm -rf /var/lib/apt/lists/* \
5665
&& for key in \
@@ -69,6 +78,14 @@ RUN set -ex \
6978
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
7079
&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
7180
&& apt-mark auto '.*' > /dev/null \
81+
&& { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; } \
82+
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
83+
| awk '/=>/ { print $(NF-1) }' \
84+
| sort -u \
85+
| xargs -r dpkg-query --search \
86+
| cut -d: -f1 \
87+
| sort -u \
88+
| xargs -r apt-mark manual \
7289
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
7390
# smoke test
7491
&& yarn --version

12/stretch-slim/Dockerfile

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
1616
*) echo "unsupported architecture"; exit 1 ;; \
1717
esac \
1818
&& set -ex \
19-
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils --no-install-recommends \
19+
# libatomic1 for arm
20+
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils libatomic1 --no-install-recommends \
2021
&& rm -rf /var/lib/apt/lists/* \
2122
&& for key in \
2223
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
@@ -42,6 +43,13 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
4243
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
4344
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
4445
&& apt-mark auto '.*' > /dev/null \
46+
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
47+
| awk '/=>/ { print $(NF-1) }' \
48+
| sort -u \
49+
| xargs -r dpkg-query --search \
50+
| cut -d: -f1 \
51+
| sort -u \
52+
| xargs -r apt-mark manual \
4553
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
4654
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
4755
# smoke tests
@@ -51,6 +59,7 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
5159
ENV YARN_VERSION 1.22.0
5260

5361
RUN set -ex \
62+
&& savedAptMark="$(apt-mark showmanual)" \
5463
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr --no-install-recommends \
5564
&& rm -rf /var/lib/apt/lists/* \
5665
&& for key in \
@@ -69,6 +78,14 @@ RUN set -ex \
6978
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
7079
&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
7180
&& apt-mark auto '.*' > /dev/null \
81+
&& { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; } \
82+
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
83+
| awk '/=>/ { print $(NF-1) }' \
84+
| sort -u \
85+
| xargs -r dpkg-query --search \
86+
| cut -d: -f1 \
87+
| sort -u \
88+
| xargs -r apt-mark manual \
7289
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
7390
# smoke test
7491
&& yarn --version

13/buster-slim/Dockerfile

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
1616
*) echo "unsupported architecture"; exit 1 ;; \
1717
esac \
1818
&& set -ex \
19-
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils --no-install-recommends \
19+
# libatomic1 for arm
20+
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils libatomic1 --no-install-recommends \
2021
&& rm -rf /var/lib/apt/lists/* \
2122
&& for key in \
2223
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
@@ -42,6 +43,13 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
4243
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
4344
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
4445
&& apt-mark auto '.*' > /dev/null \
46+
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
47+
| awk '/=>/ { print $(NF-1) }' \
48+
| sort -u \
49+
| xargs -r dpkg-query --search \
50+
| cut -d: -f1 \
51+
| sort -u \
52+
| xargs -r apt-mark manual \
4553
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
4654
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
4755
# smoke tests
@@ -51,6 +59,7 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
5159
ENV YARN_VERSION 1.21.1
5260

5361
RUN set -ex \
62+
&& savedAptMark="$(apt-mark showmanual)" \
5463
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr --no-install-recommends \
5564
&& rm -rf /var/lib/apt/lists/* \
5665
&& for key in \
@@ -69,6 +78,14 @@ RUN set -ex \
6978
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
7079
&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
7180
&& apt-mark auto '.*' > /dev/null \
81+
&& { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; } \
82+
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
83+
| awk '/=>/ { print $(NF-1) }' \
84+
| sort -u \
85+
| xargs -r dpkg-query --search \
86+
| cut -d: -f1 \
87+
| sort -u \
88+
| xargs -r apt-mark manual \
7289
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
7390
# smoke test
7491
&& yarn --version

13/stretch-slim/Dockerfile

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
1616
*) echo "unsupported architecture"; exit 1 ;; \
1717
esac \
1818
&& set -ex \
19-
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils --no-install-recommends \
19+
# libatomic1 for arm
20+
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils libatomic1 --no-install-recommends \
2021
&& rm -rf /var/lib/apt/lists/* \
2122
&& for key in \
2223
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
@@ -42,6 +43,13 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
4243
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
4344
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
4445
&& apt-mark auto '.*' > /dev/null \
46+
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
47+
| awk '/=>/ { print $(NF-1) }' \
48+
| sort -u \
49+
| xargs -r dpkg-query --search \
50+
| cut -d: -f1 \
51+
| sort -u \
52+
| xargs -r apt-mark manual \
4553
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
4654
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
4755
# smoke tests
@@ -51,6 +59,7 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
5159
ENV YARN_VERSION 1.21.1
5260

5361
RUN set -ex \
62+
&& savedAptMark="$(apt-mark showmanual)" \
5463
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr --no-install-recommends \
5564
&& rm -rf /var/lib/apt/lists/* \
5665
&& for key in \
@@ -69,6 +78,14 @@ RUN set -ex \
6978
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
7079
&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
7180
&& apt-mark auto '.*' > /dev/null \
81+
&& { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; } \
82+
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
83+
| awk '/=>/ { print $(NF-1) }' \
84+
| sort -u \
85+
| xargs -r dpkg-query --search \
86+
| cut -d: -f1 \
87+
| sort -u \
88+
| xargs -r apt-mark manual \
7289
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
7390
# smoke test
7491
&& yarn --version

Dockerfile-slim.template

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
1616
*) echo "unsupported architecture"; exit 1 ;; \
1717
esac \
1818
&& set -ex \
19-
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils --no-install-recommends \
19+
# libatomic1 for arm
20+
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils libatomic1 --no-install-recommends \
2021
&& rm -rf /var/lib/apt/lists/* \
2122
&& for key in \
2223
"${NODE_KEYS[@]}"
@@ -32,6 +33,13 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
3233
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
3334
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
3435
&& apt-mark auto '.*' > /dev/null \
36+
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
37+
| awk '/=>/ { print $(NF-1) }' \
38+
| sort -u \
39+
| xargs -r dpkg-query --search \
40+
| cut -d: -f1 \
41+
| sort -u \
42+
| xargs -r apt-mark manual \
3543
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
3644
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
3745
# smoke tests
@@ -41,6 +49,7 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
4149
ENV YARN_VERSION 0.0.0
4250

4351
RUN set -ex \
52+
&& savedAptMark="$(apt-mark showmanual)" \
4453
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr --no-install-recommends \
4554
&& rm -rf /var/lib/apt/lists/* \
4655
&& for key in \
@@ -59,6 +68,14 @@ RUN set -ex \
5968
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
6069
&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
6170
&& apt-mark auto '.*' > /dev/null \
71+
&& { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; } \
72+
&& find /usr/local -type f -executable -exec ldd '{}' ';' \
73+
| awk '/=>/ { print $(NF-1) }' \
74+
| sort -u \
75+
| xargs -r dpkg-query --search \
76+
| cut -d: -f1 \
77+
| sort -u \
78+
| xargs -r apt-mark manual \
6279
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
6380
# smoke test
6481
&& yarn --version

0 commit comments

Comments
 (0)