support/docker: limit the number of layers

The official documentation [0] suggests limiting the number of layers
generated from a dockerfile. A layer is created for each RUN (and COPY
and ADD) command. But we are only ever interested in the final image,
so the intermediate layers are useless to us.

Limit the number of RUN commands to limit the number of generated
layers.

[0] https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#minimize-the-number-of-layers

Reported-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Yann E. MORIN 2018-02-04 15:44:22 +01:00 committed by Peter Korsgaard
parent 9c267b4967
commit 7517aef4dc

View File

@ -11,25 +11,25 @@ description="Container with everything needed to run Buildroot"
# Setup environment # Setup environment
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
RUN dpkg --add-architecture i386
# The container has no package lists, so need to update first # The container has no package lists, so need to update first
RUN apt-get update -y -qq RUN dpkg --add-architecture i386 && \
RUN apt-get install -y -qq --no-install-recommends \ apt-get update -y -qq && \
build-essential cmake libc6:i386 gcc-multilib \ apt-get install -y -qq --no-install-recommends \
bc ca-certificates file locales rsync \ build-essential cmake libc6:i386 gcc-multilib \
cvs bzr git mercurial subversion wget \ bc ca-certificates file locales rsync \
cpio unzip \ cvs bzr git mercurial subversion wget \
libncurses5-dev \ cpio unzip \
python-nose2 python-pexpect qemu-system-arm qemu-system-x86 libncurses5-dev \
RUN apt-get -q -y autoremove python-nose2 python-pexpect qemu-system-arm qemu-system-x86 && \
RUN apt-get -q -y clean apt-get -q -y autoremove && \
apt-get -q -y clean
# To be able to generate a toolchain with locales, enable one UTF-8 locale # To be able to generate a toolchain with locales, enable one UTF-8 locale
RUN sed -i 's/# \(en_US.UTF-8\)/\1/' /etc/locale.gen RUN sed -i 's/# \(en_US.UTF-8\)/\1/' /etc/locale.gen && \
RUN /usr/sbin/locale-gen /usr/sbin/locale-gen
RUN useradd -ms /bin/bash br-user RUN useradd -ms /bin/bash br-user && \
RUN chown -R br-user:br-user /home/br-user chown -R br-user:br-user /home/br-user
USER br-user USER br-user
WORKDIR /home/br-user WORKDIR /home/br-user