From bbd28c668f65b0dd32c0e66187eb77b388f0e603 Mon Sep 17 00:00:00 2001 From: JoeLametta Date: Wed, 27 Nov 2019 19:54:43 +0000 Subject: [PATCH] Reduce Docker image size MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Removed useless apt cache from layer 3 - Avoid installing apt recommended packages The compressed image now weights 67 MB less (≈ -30% size). Signed-off-by: JoeLametta --- Dockerfile | 73 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 26 deletions(-) diff --git a/Dockerfile b/Dockerfile index b12b9a1..7a89763 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,52 +1,73 @@ FROM debian:buster -RUN apt-get update \ - && apt-get install -y autoconf cdrdao curl eject flac gir1.2-glib-2.0 git libiso9660-dev \ - libsndfile1-dev libtool locales make pkgconf python3-gi \ - python3-musicbrainzngs python3-mutagen python3-pip python3-requests \ - python3-ruamel.yaml python3-setuptools sox swig \ - && pip3 install pycdio==2.1.0 +RUN apt-get update && apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + cdrdao \ + bzip2 \ + curl \ + eject \ + flac \ + gir1.2-glib-2.0 \ + git \ + libiso9660-dev \ + libsndfile1-dev \ + libtool \ + locales \ + make \ + pkgconf \ + python3-dev \ + python3-gi \ + python3-musicbrainzngs \ + python3-mutagen \ + python3-pip \ + python3-requests \ + python3-ruamel.yaml \ + python3-setuptools \ + sox \ + swig \ + && apt-get clean && rm -rf /var/lib/apt/lists/* \ + && pip3 --no-cache-dir install pycdio==2.1.0 # libcdio-paranoia / libcdio-utils are wrongfully packaged in Debian, thus built manually # see https://github.com/whipper-team/whipper/pull/237#issuecomment-367985625 RUN curl -o - 'https://ftp.gnu.org/gnu/libcdio/libcdio-2.1.0.tar.bz2' | tar jxf - \ - && cd libcdio-2.1.0 \ - && autoreconf -fi \ - && ./configure --disable-dependency-tracking --disable-cxx --disable-example-progs --disable-static \ - && make install \ - && cd .. \ - && rm -rf libcdio-2.1.0 + && cd libcdio-2.1.0 \ + && autoreconf -fi \ + && ./configure --disable-dependency-tracking --disable-cxx --disable-example-progs --disable-static \ + && make install \ + && cd .. \ + && rm -rf libcdio-2.1.0 # Install cd-paranoia from tarball RUN curl -o - 'https://ftp.gnu.org/gnu/libcdio/libcdio-paranoia-10.2+2.0.0.tar.bz2' | tar jxf - \ - && cd libcdio-paranoia-10.2+2.0.0 \ - && autoreconf -fi \ - && ./configure --disable-dependency-tracking --disable-example-progs --disable-static \ - && make install \ - && cd .. \ - && rm -rf libcdio-paranoia-10.2+2.0.0 + && cd libcdio-paranoia-10.2+2.0.0 \ + && autoreconf -fi \ + && ./configure --disable-dependency-tracking --disable-example-progs --disable-static \ + && make install \ + && cd .. \ + && rm -rf libcdio-paranoia-10.2+2.0.0 RUN ldconfig # add user RUN useradd -m worker -G cdrom \ - && mkdir -p /output /home/worker/.config/whipper \ - && chown worker: /output /home/worker/.config/whipper + && mkdir -p /output /home/worker/.config/whipper \ + && chown worker: /output /home/worker/.config/whipper VOLUME ["/home/worker/.config/whipper", "/output"] # setup locales + cleanup RUN echo "LC_ALL=en_US.UTF-8" >> /etc/environment \ - && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ - && echo "LANG=en_US.UTF-8" > /etc/locale.conf \ - && locale-gen en_US.UTF-8 \ - && apt-get clean && apt-get autoremove -y + && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ + && echo "LANG=en_US.UTF-8" > /etc/locale.conf \ + && locale-gen en_US.UTF-8 # install whipper RUN mkdir /whipper COPY . /whipper/ RUN cd /whipper && python3 setup.py install \ - && rm -rf /whipper \ - && whipper -v + && rm -rf /whipper \ + && whipper -v ENV LC_ALL=en_US.UTF-8 ENV LANG=en_US