From d0d0961006bd6002f479b40743ea018d02f4d1b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20K=C3=A4ufl?= Date: Sat, 13 May 2017 15:33:32 +0200 Subject: [PATCH 1/7] [Dockerfiles] Replaced deprecated MAINTAINER with LABEL Used format proposed in https://docs.docker.com/engine/reference/builder/#maintainer-deprecated --- data/Dockerfiles/clamav/Dockerfile | 2 +- data/Dockerfiles/dovecot/Dockerfile | 2 +- data/Dockerfiles/php-fpm/Dockerfile | 2 +- data/Dockerfiles/postfix/Dockerfile | 2 +- data/Dockerfiles/rmilter/Dockerfile | 2 +- data/Dockerfiles/rspamd/Dockerfile | 2 +- data/Dockerfiles/sogo/Dockerfile | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/data/Dockerfiles/clamav/Dockerfile b/data/Dockerfiles/clamav/Dockerfile index 26867111..5ecde1c9 100755 --- a/data/Dockerfiles/clamav/Dockerfile +++ b/data/Dockerfiles/clamav/Dockerfile @@ -1,5 +1,5 @@ FROM debian:stretch-slim -MAINTAINER https://m-ko.de Markus Kosmal +LABEL maintainer "https://m-ko.de Markus Kosmal " # Debian Base to use ENV DEBIAN_VERSION stretch diff --git a/data/Dockerfiles/dovecot/Dockerfile b/data/Dockerfiles/dovecot/Dockerfile index 0a357855..a28b6628 100644 --- a/data/Dockerfiles/dovecot/Dockerfile +++ b/data/Dockerfiles/dovecot/Dockerfile @@ -1,6 +1,6 @@ FROM debian:stretch-slim #ubuntu:xenial -MAINTAINER Andre Peters +LABEL maintainer "Andre Peters " ENV DEBIAN_FRONTEND noninteractive ENV LC_ALL C diff --git a/data/Dockerfiles/php-fpm/Dockerfile b/data/Dockerfiles/php-fpm/Dockerfile index ad03b8ad..0cee7e80 100644 --- a/data/Dockerfiles/php-fpm/Dockerfile +++ b/data/Dockerfiles/php-fpm/Dockerfile @@ -1,5 +1,5 @@ FROM php:7.1-fpm -MAINTAINER Andre Peters +LABEL maintainer "Andre Peters " ENV DEBIAN_FRONTEND noninteractive diff --git a/data/Dockerfiles/postfix/Dockerfile b/data/Dockerfiles/postfix/Dockerfile index 4616ba9a..fbf8f10a 100644 --- a/data/Dockerfiles/postfix/Dockerfile +++ b/data/Dockerfiles/postfix/Dockerfile @@ -1,5 +1,5 @@ FROM debian:stretch-slim -MAINTAINER Andre Peters +LABEL maintainer "Andre Peters " ENV DEBIAN_FRONTEND noninteractive ENV LC_ALL C diff --git a/data/Dockerfiles/rmilter/Dockerfile b/data/Dockerfiles/rmilter/Dockerfile index 1d5db5b0..366f675d 100644 --- a/data/Dockerfiles/rmilter/Dockerfile +++ b/data/Dockerfiles/rmilter/Dockerfile @@ -1,5 +1,5 @@ FROM debian:jessie-slim -MAINTAINER Andre Peters +LABEL maintainer "Andre Peters " ENV DEBIAN_FRONTEND noninteractive ENV LC_ALL C diff --git a/data/Dockerfiles/rspamd/Dockerfile b/data/Dockerfiles/rspamd/Dockerfile index 5adb9dce..4d14c6f9 100644 --- a/data/Dockerfiles/rspamd/Dockerfile +++ b/data/Dockerfiles/rspamd/Dockerfile @@ -1,5 +1,5 @@ FROM debian:jessie-slim -MAINTAINER Andre Peters +LABEL maintainer "Andre Peters " ENV DEBIAN_FRONTEND noninteractive ENV LC_ALL C diff --git a/data/Dockerfiles/sogo/Dockerfile b/data/Dockerfiles/sogo/Dockerfile index b1b9d249..8210ab82 100644 --- a/data/Dockerfiles/sogo/Dockerfile +++ b/data/Dockerfiles/sogo/Dockerfile @@ -1,5 +1,5 @@ FROM debian:jessie-slim -MAINTAINER Andre Peters +LABEL maintainer "Andre Peters " ENV DEBIAN_FRONTEND noninteractive ENV LC_ALL C From 9ab9d7624074b5567c4510e647b68a86eb71311b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20K=C3=A4ufl?= Date: Sat, 13 May 2017 15:52:16 +0200 Subject: [PATCH 2/7] [Dockerfiles] Used best practices for apt-get See https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#apt-get - Replaced `-y install` with `install -y` (unification) - Put every package on its own line - Moved `rm -rf /var/lib/apt/lists/*` in the same `RUN` statement as `apt-get` - Removed unnecessary `apt-get clean` See https://github.com/moby/moby/blob/03e2923e42446dbb830c654d0eec323a0b4ef02a/contrib/mkimage/debootstrap#L82-L105 --- data/Dockerfiles/clamav/Dockerfile | 8 +++----- data/Dockerfiles/dovecot/Dockerfile | 10 +++++----- data/Dockerfiles/php-fpm/Dockerfile | 7 ++++--- data/Dockerfiles/postfix/Dockerfile | 9 +++++---- data/Dockerfiles/rmilter/Dockerfile | 11 ++++++++--- data/Dockerfiles/rspamd/Dockerfile | 9 ++++++--- data/Dockerfiles/sogo/Dockerfile | 14 +++++++++----- 7 files changed, 40 insertions(+), 28 deletions(-) diff --git a/data/Dockerfiles/clamav/Dockerfile b/data/Dockerfiles/clamav/Dockerfile index 5ecde1c9..b57fb143 100755 --- a/data/Dockerfiles/clamav/Dockerfile +++ b/data/Dockerfiles/clamav/Dockerfile @@ -8,14 +8,12 @@ ENV DEBIAN_VERSION stretch RUN echo "deb http://http.debian.net/debian/ $DEBIAN_VERSION main contrib non-free" > /etc/apt/sources.list && \ echo "deb http://http.debian.net/debian/ $DEBIAN_VERSION-updates main contrib non-free" >> /etc/apt/sources.list && \ echo "deb http://security.debian.org/ $DEBIAN_VERSION/updates main contrib non-free" >> /etc/apt/sources.list && \ - apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y -qq \ + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends \ clamav-daemon \ clamav-freshclam \ libclamunrar7 \ - curl && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* + curl \ + && rm -rf /var/lib/apt/lists/* # initial update of av databases COPY dl_files.sh /dl_files.sh diff --git a/data/Dockerfiles/dovecot/Dockerfile b/data/Dockerfiles/dovecot/Dockerfile index a28b6628..375852f2 100644 --- a/data/Dockerfiles/dovecot/Dockerfile +++ b/data/Dockerfiles/dovecot/Dockerfile @@ -7,8 +7,8 @@ ENV LC_ALL C ENV DOVECOT_VERSION 2.2.29.1 ENV PIGEONHOLE_VERSION 0.4.18 -RUN apt-get update \ - && apt-get -y install libpam-dev \ +RUN apt-get update && apt-get -y install \ + libpam-dev \ default-libmysqlclient-dev \ lzma-dev \ liblz-dev \ @@ -48,7 +48,8 @@ RUN apt-get update \ libdbd-mysql-perl \ libipc-run-perl \ make \ - cpanminus + cpanminus \ + && rm -rf /var/lib/apt/lists/* RUN wget https://www.dovecot.org/releases/2.2/dovecot-$DOVECOT_VERSION.tar.gz -O - | tar xvz \ @@ -100,8 +101,7 @@ EXPOSE 24 10001 ENTRYPOINT ["/docker-entrypoint.sh"] CMD exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf -RUN apt-get clean \ - && rm -rf /var/lib/apt/lists/* \ +RUN rm -rf \ /tmp/* \ /var/tmp/* \ /dovecot-2.2-pigeonhole-$PIGEONHOLE_VERSION \ diff --git a/data/Dockerfiles/php-fpm/Dockerfile b/data/Dockerfiles/php-fpm/Dockerfile index 0cee7e80..cfcfebb7 100644 --- a/data/Dockerfiles/php-fpm/Dockerfile +++ b/data/Dockerfiles/php-fpm/Dockerfile @@ -3,14 +3,15 @@ LABEL maintainer "Andre Peters " ENV DEBIAN_FRONTEND noninteractive -RUN apt-get update \ - && apt-get install -y zlib1g-dev \ +RUN apt-get update && apt-get install -y \ + zlib1g-dev \ libicu-dev \ g++ \ libidn11-dev \ libxml2-dev \ redis-tools \ - mysql-client + mysql-client \ + && rm -rf /var/lib/apt/lists/* RUN docker-php-ext-configure intl RUN docker-php-ext-install intl pdo pdo_mysql xmlrpc diff --git a/data/Dockerfiles/postfix/Dockerfile b/data/Dockerfiles/postfix/Dockerfile index fbf8f10a..ace78f7a 100644 --- a/data/Dockerfiles/postfix/Dockerfile +++ b/data/Dockerfiles/postfix/Dockerfile @@ -9,8 +9,8 @@ RUN dpkg-divert --local --rename --add /sbin/initctl \ && dpkg-divert --local --rename --add /usr/bin/ischroot \ && ln -sf /bin/true /usr/bin/ischroot -RUN apt-get update -RUN apt-get install -y --no-install-recommends supervisor \ +RUN apt-get update && apt-get install -y --no-install-recommends \ + supervisor \ postfix \ sasl2-bin \ libsasl2-modules \ @@ -25,7 +25,8 @@ RUN apt-get install -y --no-install-recommends supervisor \ python-gpgme \ sudo \ curl \ - dirmngr + dirmngr \ + && rm -rf /var/lib/apt/lists/* RUN addgroup --system --gid 600 zeyple RUN adduser --system --home /var/lib/zeyple --no-create-home --uid 600 --gid 600 --disabled-login zeyple @@ -44,4 +45,4 @@ EXPOSE 588 CMD exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf -RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +RUN rm -rf /tmp/* /var/tmp/* diff --git a/data/Dockerfiles/rmilter/Dockerfile b/data/Dockerfiles/rmilter/Dockerfile index 366f675d..725a2596 100644 --- a/data/Dockerfiles/rmilter/Dockerfile +++ b/data/Dockerfiles/rmilter/Dockerfile @@ -6,8 +6,13 @@ ENV LC_ALL C RUN apt-key adv --fetch-keys http://rspamd.com/apt-stable/gpg.key \ && echo "deb http://rspamd.com/apt-stable/ jessie main" > /etc/apt/sources.list.d/rspamd.list \ - && apt-get update \ - && apt-get --no-install-recommends -y --force-yes install rmilter cron syslog-ng syslog-ng-core supervisor + && apt-get update && apt-get install -y --force-yes --no-install-recommends \ + rmilter \ + cron \ + syslog-ng \ + syslog-ng-core \ + supervisor \ + && rm -rf /var/lib/apt/lists/* COPY supervisord.conf /etc/supervisor/supervisord.conf @@ -18,4 +23,4 @@ RUN touch /var/log/mail.log && chmod 640 /var/log/mail.log && chown root:adm /va CMD exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf -RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +RUN rm -rf /tmp/* /var/tmp/* diff --git a/data/Dockerfiles/rspamd/Dockerfile b/data/Dockerfiles/rspamd/Dockerfile index 4d14c6f9..bc0ecceb 100644 --- a/data/Dockerfiles/rspamd/Dockerfile +++ b/data/Dockerfiles/rspamd/Dockerfile @@ -6,8 +6,11 @@ ENV LC_ALL C RUN apt-key adv --fetch-keys http://rspamd.com/apt-stable/gpg.key \ && echo "deb http://rspamd.com/apt-stable/ jessie main" > /etc/apt/sources.list.d/rspamd.list \ - && apt-get update \ - && apt-get -y install rspamd ca-certificates python-pip + && apt-get update && apt-get install -y \ + rspamd \ + ca-certificates \ + python-pip \ + && rm -rf /var/lib/apt/lists/* RUN echo '.include $LOCAL_CONFDIR/local.d/rspamd.conf.local' > /etc/rspamd/rspamd.conf.local @@ -18,7 +21,7 @@ RUN pip install -U oletools CMD /usr/bin/rspamd -f -u _rspamd -g _rspamd -RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +RUN rm -rf /tmp/* /var/tmp/* USER _rspamd diff --git a/data/Dockerfiles/sogo/Dockerfile b/data/Dockerfiles/sogo/Dockerfile index 8210ab82..56dc1e75 100644 --- a/data/Dockerfiles/sogo/Dockerfile +++ b/data/Dockerfiles/sogo/Dockerfile @@ -5,8 +5,9 @@ ENV DEBIAN_FRONTEND noninteractive ENV LC_ALL C ENV GOSU_VERSION 1.9 -RUN apt-get update \ - && apt-get install -y --no-install-recommends apt-transport-https gnupg \ +RUN apt-get update && apt-get install -y --no-install-recommends \ + apt-transport-https \ + gnupg \ ca-certificates \ wget \ syslog-ng \ @@ -14,6 +15,7 @@ RUN apt-get update \ supervisor \ mysql-client \ cron \ + && rm -rf /var/lib/apt/lists/* \ && dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \ && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \ && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc" \ @@ -29,8 +31,10 @@ RUN touch /usr/share/doc/sogo/empty.sh RUN apt-key adv --keyserver keys.gnupg.net --recv-key 0x810273C4 \ && echo "deb http://packages.inverse.ca/SOGo/nightly/3/debian/ jessie jessie" > /etc/apt/sources.list.d/sogo.list \ - && apt-get update \ - && apt-get -y --force-yes install sogo sogo-activesync + && apt-get update && apt-get install -y --force-yes \ + sogo \ + sogo-activesync \ + && rm -rf /var/lib/apt/lists/* RUN sed -i -E 's/^(\s*)system\(\);/\1unix-stream("\/dev\/log");/' /etc/syslog-ng/syslog-ng.conf RUN echo '* * * * * sogo /usr/sbin/sogo-ealarms-notify' > /etc/cron.d/sogo @@ -42,4 +46,4 @@ COPY supervisord.conf /etc/supervisor/supervisord.conf CMD exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf -RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +RUN rm -rf /tmp/* /var/tmp/* From 85be7aa973f4882346bc9ef65c11f83fa3b239fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20K=C3=A4ufl?= Date: Sat, 13 May 2017 16:07:06 +0200 Subject: [PATCH 3/7] [Dockerfiles] Sorted list of packages --- data/Dockerfiles/clamav/Dockerfile | 2 +- data/Dockerfiles/dovecot/Dockerfile | 40 ++++++++++++++--------------- data/Dockerfiles/php-fpm/Dockerfile | 6 ++--- data/Dockerfiles/postfix/Dockerfile | 18 ++++++------- data/Dockerfiles/rmilter/Dockerfile | 4 +-- data/Dockerfiles/rspamd/Dockerfile | 2 +- data/Dockerfiles/sogo/Dockerfile | 10 ++++---- 7 files changed, 41 insertions(+), 41 deletions(-) diff --git a/data/Dockerfiles/clamav/Dockerfile b/data/Dockerfiles/clamav/Dockerfile index b57fb143..63dcf118 100755 --- a/data/Dockerfiles/clamav/Dockerfile +++ b/data/Dockerfiles/clamav/Dockerfile @@ -11,8 +11,8 @@ RUN echo "deb http://http.debian.net/debian/ $DEBIAN_VERSION main contrib non-fr apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends \ clamav-daemon \ clamav-freshclam \ - libclamunrar7 \ curl \ + libclamunrar7 \ && rm -rf /var/lib/apt/lists/* # initial update of av databases diff --git a/data/Dockerfiles/dovecot/Dockerfile b/data/Dockerfiles/dovecot/Dockerfile index 375852f2..9664bc54 100644 --- a/data/Dockerfiles/dovecot/Dockerfile +++ b/data/Dockerfiles/dovecot/Dockerfile @@ -8,47 +8,47 @@ ENV DOVECOT_VERSION 2.2.29.1 ENV PIGEONHOLE_VERSION 0.4.18 RUN apt-get update && apt-get -y install \ - libpam-dev \ - default-libmysqlclient-dev \ - lzma-dev \ - liblz-dev \ - libbz2-dev \ - liblz4-dev \ - liblzma-dev \ - build-essential \ - autotools-dev \ automake \ - syslog-ng \ - syslog-ng-core \ - syslog-ng-mod-redis \ + autotools-dev \ + build-essential \ ca-certificates \ - supervisor \ - wget \ + cpanminus \ curl \ - libssl-dev \ + default-libmysqlclient-dev \ libauthen-ntlm-perl \ + libbz2-dev \ libcrypt-ssleay-perl \ + libdbd-mysql-perl \ + libdbi-perl \ libdigest-hmac-perl \ libfile-copy-recursive-perl \ libio-compress-perl \ libio-socket-inet6-perl \ libio-socket-ssl-perl \ libio-tee-perl \ + libipc-run-perl \ + liblockfile-simple-perl \ + liblz-dev \ + liblz4-dev \ + liblzma-dev \ libmodule-scandeps-perl \ libnet-ssleay-perl \ + libpam-dev \ libpar-packer-perl \ libreadonly-perl \ + libssl-dev \ libterm-readkey-perl \ libtest-pod-perl \ libtest-simple-perl \ libunicode-string-perl \ liburi-perl \ - libdbi-perl \ - liblockfile-simple-perl \ - libdbd-mysql-perl \ - libipc-run-perl \ + lzma-dev \ make \ - cpanminus \ + supervisor \ + syslog-ng \ + syslog-ng-core \ + syslog-ng-mod-redis \ + wget \ && rm -rf /var/lib/apt/lists/* diff --git a/data/Dockerfiles/php-fpm/Dockerfile b/data/Dockerfiles/php-fpm/Dockerfile index cfcfebb7..9d7e5c0b 100644 --- a/data/Dockerfiles/php-fpm/Dockerfile +++ b/data/Dockerfiles/php-fpm/Dockerfile @@ -4,13 +4,13 @@ LABEL maintainer "Andre Peters " ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && apt-get install -y \ - zlib1g-dev \ - libicu-dev \ g++ \ + libicu-dev \ libidn11-dev \ libxml2-dev \ - redis-tools \ mysql-client \ + redis-tools \ + zlib1g-dev \ && rm -rf /var/lib/apt/lists/* RUN docker-php-ext-configure intl diff --git a/data/Dockerfiles/postfix/Dockerfile b/data/Dockerfiles/postfix/Dockerfile index ace78f7a..ad7ca5f3 100644 --- a/data/Dockerfiles/postfix/Dockerfile +++ b/data/Dockerfiles/postfix/Dockerfile @@ -10,22 +10,22 @@ RUN dpkg-divert --local --rename --add /sbin/initctl \ && ln -sf /bin/true /usr/bin/ischroot RUN apt-get update && apt-get install -y --no-install-recommends \ - supervisor \ - postfix \ - sasl2-bin \ + ca-certificates \ + curl \ + dirmngr \ + gnupg \ libsasl2-modules \ postfix \ + postfix \ postfix-mysql \ postfix-pcre \ + python-gpgme \ + sasl2-bin \ + sudo \ + supervisor \ syslog-ng \ syslog-ng-core \ syslog-ng-mod-redis \ - ca-certificates \ - gnupg \ - python-gpgme \ - sudo \ - curl \ - dirmngr \ && rm -rf /var/lib/apt/lists/* RUN addgroup --system --gid 600 zeyple diff --git a/data/Dockerfiles/rmilter/Dockerfile b/data/Dockerfiles/rmilter/Dockerfile index 725a2596..405dc90e 100644 --- a/data/Dockerfiles/rmilter/Dockerfile +++ b/data/Dockerfiles/rmilter/Dockerfile @@ -7,11 +7,11 @@ ENV LC_ALL C RUN apt-key adv --fetch-keys http://rspamd.com/apt-stable/gpg.key \ && echo "deb http://rspamd.com/apt-stable/ jessie main" > /etc/apt/sources.list.d/rspamd.list \ && apt-get update && apt-get install -y --force-yes --no-install-recommends \ - rmilter \ cron \ + rmilter \ + supervisor \ syslog-ng \ syslog-ng-core \ - supervisor \ && rm -rf /var/lib/apt/lists/* COPY supervisord.conf /etc/supervisor/supervisord.conf diff --git a/data/Dockerfiles/rspamd/Dockerfile b/data/Dockerfiles/rspamd/Dockerfile index bc0ecceb..61386754 100644 --- a/data/Dockerfiles/rspamd/Dockerfile +++ b/data/Dockerfiles/rspamd/Dockerfile @@ -7,9 +7,9 @@ ENV LC_ALL C RUN apt-key adv --fetch-keys http://rspamd.com/apt-stable/gpg.key \ && echo "deb http://rspamd.com/apt-stable/ jessie main" > /etc/apt/sources.list.d/rspamd.list \ && apt-get update && apt-get install -y \ - rspamd \ ca-certificates \ python-pip \ + rspamd \ && rm -rf /var/lib/apt/lists/* RUN echo '.include $LOCAL_CONFDIR/local.d/rspamd.conf.local' > /etc/rspamd/rspamd.conf.local diff --git a/data/Dockerfiles/sogo/Dockerfile b/data/Dockerfiles/sogo/Dockerfile index 56dc1e75..054f5a77 100644 --- a/data/Dockerfiles/sogo/Dockerfile +++ b/data/Dockerfiles/sogo/Dockerfile @@ -7,14 +7,14 @@ ENV GOSU_VERSION 1.9 RUN apt-get update && apt-get install -y --no-install-recommends \ apt-transport-https \ - gnupg \ ca-certificates \ - wget \ + cron \ + gnupg \ + mysql-client \ + supervisor \ syslog-ng \ syslog-ng-core \ - supervisor \ - mysql-client \ - cron \ + wget \ && rm -rf /var/lib/apt/lists/* \ && dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \ && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \ From 559d9dda719f44a7c67ddb329a0719cb57b1c600 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20K=C3=A4ufl?= Date: Sat, 13 May 2017 16:11:04 +0200 Subject: [PATCH 4/7] [Dockerfiles] Run rm as early as possible --- data/Dockerfiles/dovecot/Dockerfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/data/Dockerfiles/dovecot/Dockerfile b/data/Dockerfiles/dovecot/Dockerfile index 9664bc54..708ff8bd 100644 --- a/data/Dockerfiles/dovecot/Dockerfile +++ b/data/Dockerfiles/dovecot/Dockerfile @@ -57,14 +57,16 @@ RUN wget https://www.dovecot.org/releases/2.2/dovecot-$DOVECOT_VERSION.tar.gz -O && ./configure --with-mysql --with-lzma --with-lz4 --with-ssl=openssl --with-notify=inotify --with-storages=mdbox,sdbox,maildir,mbox,imapc,pop3c --with-bzlib --with-zlib \ && make -j3 \ && make install \ - && make clean + && make clean \ + && cd .. && rm -rf dovecot-$DOVECOT_VERSION RUN wget https://pigeonhole.dovecot.org/releases/2.2/dovecot-2.2-pigeonhole-$PIGEONHOLE_VERSION.tar.gz -O - | tar xvz \ && cd dovecot-2.2-pigeonhole-$PIGEONHOLE_VERSION \ && ./configure \ && make -j3 \ && make install \ - && make clean + && make clean \ + && cd .. && rm -rf dovecot-2.2-pigeonhole-$PIGEONHOLE_VERSION RUN cpanm Data::Uniqid Mail::IMAPClient String::Util RUN echo '* * * * * root /usr/local/bin/imapsync_cron.pl' > /etc/cron.d/imapsync @@ -103,6 +105,4 @@ CMD exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf RUN rm -rf \ /tmp/* \ - /var/tmp/* \ - /dovecot-2.2-pigeonhole-$PIGEONHOLE_VERSION \ - /dovecot-$DOVECOT_VERSION + /var/tmp/* From e081a847a19d841f2e269c5521a7d8ff92f8f110 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20K=C3=A4ufl?= Date: Sat, 13 May 2017 16:28:23 +0200 Subject: [PATCH 5/7] [Dockerfiles] Do not keep curl installed --- data/Dockerfiles/clamav/Dockerfile | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/data/Dockerfiles/clamav/Dockerfile b/data/Dockerfiles/clamav/Dockerfile index 63dcf118..ce37fe25 100755 --- a/data/Dockerfiles/clamav/Dockerfile +++ b/data/Dockerfiles/clamav/Dockerfile @@ -11,14 +11,23 @@ RUN echo "deb http://http.debian.net/debian/ $DEBIAN_VERSION main contrib non-fr apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends \ clamav-daemon \ clamav-freshclam \ - curl \ libclamunrar7 \ && rm -rf /var/lib/apt/lists/* # initial update of av databases COPY dl_files.sh /dl_files.sh RUN chmod +x /dl_files.sh -RUN /dl_files.sh + +RUN set -ex; \ + \ + fetchDeps=' \ + curl \ + '; \ + apt-get update; \ + apt-get install -y --no-install-recommends $fetchDeps; \ + rm -rf /var/lib/apt/lists/*; \ + /dl_files.sh \ + apt-get purge -y --auto-remove $fetchDeps # permission juggling RUN mkdir /var/run/clamav && \ From 7fd982f948317af489ef9d886d51013518bbefb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20K=C3=A4ufl?= Date: Sat, 13 May 2017 16:29:18 +0200 Subject: [PATCH 6/7] [Dockerfiles] Do not persist DEBIAN_FRONTEND=noninteractive in images According to https://github.com/moby/moby/issues/4032#issuecomment-163689851 (and some other comments in the issue) it's not recommended to set `DEBIAN_FRONTEND` via `ENV` in a Dockerfile. `ARG` has the same effect at build time but does not change `DEBIAN_FRONTEND` in the final image, so I switched to it. It should also work to remove it completely. --- data/Dockerfiles/clamav/Dockerfile | 3 ++- data/Dockerfiles/dovecot/Dockerfile | 2 +- data/Dockerfiles/php-fpm/Dockerfile | 2 +- data/Dockerfiles/postfix/Dockerfile | 2 +- data/Dockerfiles/rmilter/Dockerfile | 2 +- data/Dockerfiles/rspamd/Dockerfile | 2 +- data/Dockerfiles/sogo/Dockerfile | 2 +- 7 files changed, 8 insertions(+), 7 deletions(-) diff --git a/data/Dockerfiles/clamav/Dockerfile b/data/Dockerfiles/clamav/Dockerfile index ce37fe25..a2551677 100755 --- a/data/Dockerfiles/clamav/Dockerfile +++ b/data/Dockerfiles/clamav/Dockerfile @@ -3,12 +3,13 @@ LABEL maintainer "https://m-ko.de Markus Kosmal " # Debian Base to use ENV DEBIAN_VERSION stretch +ARG DEBIAN_FRONTEND=noninteractive # initial install of av daemon RUN echo "deb http://http.debian.net/debian/ $DEBIAN_VERSION main contrib non-free" > /etc/apt/sources.list && \ echo "deb http://http.debian.net/debian/ $DEBIAN_VERSION-updates main contrib non-free" >> /etc/apt/sources.list && \ echo "deb http://security.debian.org/ $DEBIAN_VERSION/updates main contrib non-free" >> /etc/apt/sources.list && \ - apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends \ + apt-get update && apt-get install -y -qq --no-install-recommends \ clamav-daemon \ clamav-freshclam \ libclamunrar7 \ diff --git a/data/Dockerfiles/dovecot/Dockerfile b/data/Dockerfiles/dovecot/Dockerfile index 708ff8bd..1aafecd0 100644 --- a/data/Dockerfiles/dovecot/Dockerfile +++ b/data/Dockerfiles/dovecot/Dockerfile @@ -2,7 +2,7 @@ FROM debian:stretch-slim #ubuntu:xenial LABEL maintainer "Andre Peters " -ENV DEBIAN_FRONTEND noninteractive +ARG DEBIAN_FRONTEND=noninteractive ENV LC_ALL C ENV DOVECOT_VERSION 2.2.29.1 ENV PIGEONHOLE_VERSION 0.4.18 diff --git a/data/Dockerfiles/php-fpm/Dockerfile b/data/Dockerfiles/php-fpm/Dockerfile index 9d7e5c0b..0d65040f 100644 --- a/data/Dockerfiles/php-fpm/Dockerfile +++ b/data/Dockerfiles/php-fpm/Dockerfile @@ -1,7 +1,7 @@ FROM php:7.1-fpm LABEL maintainer "Andre Peters " -ENV DEBIAN_FRONTEND noninteractive +ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y \ g++ \ diff --git a/data/Dockerfiles/postfix/Dockerfile b/data/Dockerfiles/postfix/Dockerfile index ad7ca5f3..e74e8725 100644 --- a/data/Dockerfiles/postfix/Dockerfile +++ b/data/Dockerfiles/postfix/Dockerfile @@ -1,7 +1,7 @@ FROM debian:stretch-slim LABEL maintainer "Andre Peters " -ENV DEBIAN_FRONTEND noninteractive +ARG DEBIAN_FRONTEND=noninteractive ENV LC_ALL C RUN dpkg-divert --local --rename --add /sbin/initctl \ diff --git a/data/Dockerfiles/rmilter/Dockerfile b/data/Dockerfiles/rmilter/Dockerfile index 405dc90e..abe286f6 100644 --- a/data/Dockerfiles/rmilter/Dockerfile +++ b/data/Dockerfiles/rmilter/Dockerfile @@ -1,7 +1,7 @@ FROM debian:jessie-slim LABEL maintainer "Andre Peters " -ENV DEBIAN_FRONTEND noninteractive +ARG DEBIAN_FRONTEND=noninteractive ENV LC_ALL C RUN apt-key adv --fetch-keys http://rspamd.com/apt-stable/gpg.key \ diff --git a/data/Dockerfiles/rspamd/Dockerfile b/data/Dockerfiles/rspamd/Dockerfile index 61386754..cb097a66 100644 --- a/data/Dockerfiles/rspamd/Dockerfile +++ b/data/Dockerfiles/rspamd/Dockerfile @@ -1,7 +1,7 @@ FROM debian:jessie-slim LABEL maintainer "Andre Peters " -ENV DEBIAN_FRONTEND noninteractive +ARG DEBIAN_FRONTEND=noninteractive ENV LC_ALL C RUN apt-key adv --fetch-keys http://rspamd.com/apt-stable/gpg.key \ diff --git a/data/Dockerfiles/sogo/Dockerfile b/data/Dockerfiles/sogo/Dockerfile index 054f5a77..475468b1 100644 --- a/data/Dockerfiles/sogo/Dockerfile +++ b/data/Dockerfiles/sogo/Dockerfile @@ -1,7 +1,7 @@ FROM debian:jessie-slim LABEL maintainer "Andre Peters " -ENV DEBIAN_FRONTEND noninteractive +ARG DEBIAN_FRONTEND=noninteractive ENV LC_ALL C ENV GOSU_VERSION 1.9 From 766a986f277b4c4c17034898761e68d55eba2e96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20K=C3=A4ufl?= Date: Sat, 13 May 2017 16:49:10 +0200 Subject: [PATCH 7/7] [Dockerfiles] Do not install both curl and wget curl is used in rspamd-pipe-*, so I kept curl --- data/Dockerfiles/dovecot/Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/data/Dockerfiles/dovecot/Dockerfile b/data/Dockerfiles/dovecot/Dockerfile index 1aafecd0..b195510a 100644 --- a/data/Dockerfiles/dovecot/Dockerfile +++ b/data/Dockerfiles/dovecot/Dockerfile @@ -48,11 +48,10 @@ RUN apt-get update && apt-get -y install \ syslog-ng \ syslog-ng-core \ syslog-ng-mod-redis \ - wget \ && rm -rf /var/lib/apt/lists/* -RUN wget https://www.dovecot.org/releases/2.2/dovecot-$DOVECOT_VERSION.tar.gz -O - | tar xvz \ +RUN curl https://www.dovecot.org/releases/2.2/dovecot-$DOVECOT_VERSION.tar.gz | tar xvz \ && cd dovecot-$DOVECOT_VERSION \ && ./configure --with-mysql --with-lzma --with-lz4 --with-ssl=openssl --with-notify=inotify --with-storages=mdbox,sdbox,maildir,mbox,imapc,pop3c --with-bzlib --with-zlib \ && make -j3 \ @@ -60,7 +59,7 @@ RUN wget https://www.dovecot.org/releases/2.2/dovecot-$DOVECOT_VERSION.tar.gz -O && make clean \ && cd .. && rm -rf dovecot-$DOVECOT_VERSION -RUN wget https://pigeonhole.dovecot.org/releases/2.2/dovecot-2.2-pigeonhole-$PIGEONHOLE_VERSION.tar.gz -O - | tar xvz \ +RUN curl https://pigeonhole.dovecot.org/releases/2.2/dovecot-2.2-pigeonhole-$PIGEONHOLE_VERSION.tar.gz | tar xvz \ && cd dovecot-2.2-pigeonhole-$PIGEONHOLE_VERSION \ && ./configure \ && make -j3 \