Delete the apt-get lists after installing something
19LABEL org.opencontainers.image.description="Docker Image for ${L4T_BASE} ${L4T_MAJOR}.${L4T_MINOR}.${L4T_PATCH} with Runner ${RUNNER_VERSION}."
20
21# Uupdate the base packages + add a non-sudo user
22RUN apt-get update -y && apt-get upgrade -y && useradd -m docker23
24# Set Working Directory
25WORKDIR /home/docker
Delete the apt-get lists after installing something
19LABEL org.opencontainers.image.description="Docker Image for Ubuntu ${UBUNTU_MAJOR}.${UBUNTU_MINOR} with CUDA ${CUDA_MAJOR}.${CUDA_MINOR}, and Runner ${RUNNER_VERSION}."
20
21# Update the base packages + add a non-sudo user
22RUN apt-get update -y && apt-get upgrade -y && useradd -m docker23
24# Install the packages and dependencies along with jq so we can parse JSON (add additional packages as necessary)
25RUN apt-get install -y --no-install-recommends \
Delete the apt-get lists after installing something
28 curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
29
30# Install Required Ubuntu Packages
31RUN apt-get update && apt-get install --no-install-recommends -y \ 32 build-essential gfortran cmake git gdb file tar libatlas-base-dev apt-transport-https iputils-ping \
33 libavcodec-dev libavformat-dev libswresample-dev libcanberra-gtk3-module zstd wget less \
34 libeigen3-dev libglew-dev libgstreamer-plugins-base1.0-dev udev net-tools \
Delete the apt-get lists after installing something
39 echo "deb [arch=amd64 signed-by=/usr/share/keyrings/bazel-archive-keyring.gpg] https://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list
40
41# Install Required Ubuntu Packages
42RUN apt-get update && apt-get install --no-install-recommends -y iputils-ping \ 43 build-essential gdb wget less udev zstd sudo libgomp1 libswscale-dev \
44 cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev tzdata \
45 libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev tzdata net-tools \
Description
Cleaning up the apt cache and removing /var/lib/apt/lists
helps keep the image size down. Since the RUN
statement starts with apt-get update
, the package cache will always be refreshed prior to apt-get install
.
You can read more about this here.
Note: Clean up must be performed in the same RUN step, otherwise it will not affect image size.
Bad Practice
RUN apt-get update && apt-get install -y python
Recommended
RUN apt-get update && apt-get install -y python \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
Exceptions
The official Debian and Ubuntu images are configured to automatically run apt clean
, so explicitly invoking apt clean
is not necessary there.