Skip to content

Commit e1d8195

Browse files
committed
Auto merge of #105176 - klensy:docker-smol, r=Mark-Simulacrum
CI: reduce docker image sizes Reduces docker image sizes by using simple tips like: cleaning packet managers cache, squashing sequential installation steps into one. For some images this gives ~40mb for apt-based images (not so much), but ~200mb(!) for centos one.
2 parents 203c876 + eadf69a commit e1d8195

File tree

19 files changed

+43
-27
lines changed

19 files changed

+43
-27
lines changed

src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins
1414
gdb \
1515
libssl-dev \
1616
pkg-config \
17-
xz-utils
17+
xz-utils \
18+
&& rm -rf /var/lib/apt/lists/*
1819

1920
COPY scripts/sccache.sh /scripts/
2021
RUN sh /scripts/sccache.sh

src/ci/docker/host-x86_64/dist-i686-linux/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ RUN yum upgrade -y && \
3232
wget \
3333
xz \
3434
zlib-devel.i686 \
35-
zlib-devel.x86_64
35+
zlib-devel.x86_64 \
36+
&& yum clean all
3637

3738
RUN mkdir -p /rustroot/bin && ln -s /usr/bin/cmake3 /rustroot/bin/cmake
3839

src/ci/docker/host-x86_64/dist-x86_64-freebsd/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1515
xz-utils \
1616
wget \
1717
libssl-dev \
18-
pkg-config
18+
pkg-config \
19+
&& rm -rf /var/lib/apt/lists/*
1920

2021
COPY scripts/freebsd-toolchain.sh /tmp/
2122
RUN /tmp/freebsd-toolchain.sh x86_64

src/ci/docker/host-x86_64/dist-x86_64-illumos/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ RUN apt-get update && \
1111
apt-get install -y --no-install-recommends \
1212
libgmp-dev \
1313
libmpfr-dev \
14-
libmpc-dev
14+
libmpc-dev \
15+
&& rm -rf /var/lib/apt/lists/*
1516

1617
COPY scripts/illumos-toolchain.sh /tmp/
1718

src/ci/docker/host-x86_64/dist-x86_64-linux/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ RUN yum upgrade -y && \
3232
wget \
3333
xz \
3434
zlib-devel.i686 \
35-
zlib-devel.x86_64
35+
zlib-devel.x86_64 \
36+
&& yum clean all
3637

3738
RUN mkdir -p /rustroot/bin && ln -s /usr/bin/cmake3 /rustroot/bin/cmake
3839

src/ci/docker/host-x86_64/dist-x86_64-musl/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins
1616
gdb \
1717
patch \
1818
libssl-dev \
19-
pkg-config
19+
pkg-config \
20+
&& rm -rf /var/lib/apt/lists/*
2021

2122
WORKDIR /build/
2223

src/ci/docker/host-x86_64/i686-gnu-nopt/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1515
gdb \
1616
zlib1g-dev \
1717
lib32z1-dev \
18-
xz-utils
18+
xz-utils \
19+
&& rm -rf /var/lib/apt/lists/*
1920

2021

2122
COPY scripts/sccache.sh /scripts/

src/ci/docker/host-x86_64/i686-gnu/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1515
gdb \
1616
zlib1g-dev \
1717
lib32z1-dev \
18-
xz-utils
18+
xz-utils \
19+
&& rm -rf /var/lib/apt/lists/*
1920

2021

2122
COPY scripts/sccache.sh /scripts/

src/ci/docker/host-x86_64/mingw-check/Dockerfile

+4-4
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,20 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2020
xz-utils \
2121
libssl-dev \
2222
pkg-config \
23-
mingw-w64
23+
mingw-w64 \
24+
&& rm -rf /var/lib/apt/lists/*
2425

2526
RUN curl -sL https://nodejs.org/dist/v16.9.0/node-v16.9.0-linux-x64.tar.xz | tar -xJ
2627
ENV PATH="/node-v16.9.0-linux-x64/bin:${PATH}"
2728
# Install es-check
2829
# Pin its version to prevent unrelated CI failures due to future es-check versions.
29-
RUN npm install es-check@6.1.1 -g
30-
RUN npm install eslint@8.6.0 -g
30+
RUN npm install es-check@6.1.1 eslint@8.6.0 -g
3131

3232
COPY scripts/sccache.sh /scripts/
3333
RUN sh /scripts/sccache.sh
3434

3535
COPY host-x86_64/mingw-check/reuse-requirements.txt /tmp/
36-
RUN pip3 install --no-deps --require-hashes -r /tmp/reuse-requirements.txt
36+
RUN pip3 install --no-deps --no-cache-dir --require-hashes -r /tmp/reuse-requirements.txt
3737

3838
COPY host-x86_64/mingw-check/validate-toolstate.sh /scripts/
3939
COPY host-x86_64/mingw-check/validate-error-codes.sh /scripts/

src/ci/docker/host-x86_64/test-various/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins
2121
ovmf \
2222
qemu-efi-aarch64 \
2323
qemu-system-arm \
24-
qemu-system-x86
24+
qemu-system-x86 \
25+
&& rm -rf /var/lib/apt/lists/*
2526

2627
RUN curl -sL https://nodejs.org/dist/v15.14.0/node-v15.14.0-linux-x64.tar.xz | \
2728
tar -xJ

src/ci/docker/host-x86_64/wasm32/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins
1313
sudo \
1414
gdb \
1515
xz-utils \
16-
bzip2
16+
bzip2 \
17+
&& rm -rf /var/lib/apt/lists/*
1718

1819
COPY scripts/emscripten.sh /scripts/
1920
RUN bash /scripts/emscripten.sh

src/ci/docker/host-x86_64/x86_64-gnu-aux/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1919
llvm-dev \
2020
libfreetype6-dev \
2121
libexpat1-dev \
22-
tidy
22+
tidy \
23+
&& rm -rf /var/lib/apt/lists/*
2324

2425
COPY scripts/sccache.sh /scripts/
2526
RUN sh /scripts/sccache.sh

src/ci/docker/host-x86_64/x86_64-gnu-debug/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2323
pkg-config \
2424
xz-utils \
2525
lld \
26-
clang
26+
clang \
27+
&& rm -rf /var/lib/apt/lists/*
2728

2829
COPY scripts/sccache.sh /scripts/
2930
RUN sh /scripts/sccache.sh

src/ci/docker/host-x86_64/x86_64-gnu-distcheck/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1515
gdb \
1616
xz-utils \
1717
libssl-dev \
18-
pkg-config
18+
pkg-config \
19+
&& rm -rf /var/lib/apt/lists/*
1920

2021
COPY scripts/sccache.sh /scripts/
2122
RUN sh /scripts/sccache.sh

src/ci/docker/host-x86_64/x86_64-gnu-llvm-13-stage1/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2121
pkg-config \
2222
zlib1g-dev \
2323
xz-utils \
24-
nodejs
24+
nodejs \
25+
&& rm -rf /var/lib/apt/lists/*
2526

2627
COPY scripts/sccache.sh /scripts/
2728
RUN sh /scripts/sccache.sh

src/ci/docker/host-x86_64/x86_64-gnu-llvm-13/Dockerfile

+4-4
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2424
pkg-config \
2525
zlib1g-dev \
2626
xz-utils \
27-
nodejs
27+
nodejs \
2828

2929
# Install powershell so we can test x.ps1 on Linux
30-
RUN apt-get update && \
31-
apt-get install -y apt-transport-https software-properties-common && \
30+
apt-transport-https software-properties-common && \
3231
curl -s "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb" > packages-microsoft-prod.deb && \
3332
dpkg -i packages-microsoft-prod.deb && \
3433
apt-get update && \
35-
apt-get install -y powershell
34+
apt-get install -y powershell \
35+
&& rm -rf /var/lib/apt/lists/*
3636

3737
COPY scripts/sccache.sh /scripts/
3838
RUN sh /scripts/sccache.sh

src/ci/docker/host-x86_64/x86_64-gnu-nopt/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins
1515
gdb \
1616
libssl-dev \
1717
pkg-config \
18-
xz-utils
18+
xz-utils \
19+
&& rm -rf /var/lib/apt/lists/*
1920

2021
COPY scripts/sccache.sh /scripts/
2122
RUN sh /scripts/sccache.sh

src/ci/docker/host-x86_64/x86_64-gnu-tools/Dockerfile

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1414
libssl-dev \
1515
sudo \
1616
xz-utils \
17-
tidy
17+
tidy \
1818

1919
# Install dependencies for chromium browser
20-
RUN apt-get install -y \
2120
gconf-service \
2221
libasound2 \
2322
libatk1.0-0 \
@@ -56,7 +55,8 @@ RUN apt-get install -y \
5655
libnss3 \
5756
lsb-release \
5857
xdg-utils \
59-
wget
58+
wget \
59+
&& rm -rf /var/lib/apt/lists/*
6060

6161
COPY scripts/sccache.sh /scripts/
6262
RUN sh /scripts/sccache.sh

src/ci/docker/host-x86_64/x86_64-gnu/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1515
gdb \
1616
libssl-dev \
1717
pkg-config \
18-
xz-utils
18+
xz-utils \
19+
&& rm -rf /var/lib/apt/lists/*
1920

2021
COPY scripts/sccache.sh /scripts/
2122
RUN sh /scripts/sccache.sh

0 commit comments

Comments
 (0)