diff --git a/data/Dockerfiles/rmilter/Dockerfile b/data/Dockerfiles/rmilter/Dockerfile index 9a239139..5f5deb38 100644 --- a/data/Dockerfiles/rmilter/Dockerfile +++ b/data/Dockerfiles/rmilter/Dockerfile @@ -12,12 +12,14 @@ RUN dpkg-divert --local --rename --add /sbin/initctl \ RUN apt-key adv --fetch-keys http://rspamd.com/apt-stable/gpg.key \ && echo "deb http://rspamd.com/apt-stable/ xenial main" > /etc/apt/sources.list.d/rspamd.list \ && apt-get update \ - && apt-get --no-install-recommends -y --force-yes install rmilter + && apt-get --no-install-recommends -y --force-yes install rmilter cron syslog-ng syslog-ng-core supervisor -CMD ["/usr/sbin/rmilter","-n", "-c", "/etc/rmilter.conf.d/rmilter.conf"] - -RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - -USER _rmilter +COPY supervisord.conf /etc/supervisor/supervisord.conf EXPOSE 9000 + +RUN sed -i -E 's/^(\s*)system\(\);/\1unix-stream("\/dev\/log");/' /etc/syslog-ng/syslog-ng.conf + +CMD exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf + +RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* diff --git a/data/Dockerfiles/rmilter/supervisord.conf b/data/Dockerfiles/rmilter/supervisord.conf new file mode 100644 index 00000000..6eff0b17 --- /dev/null +++ b/data/Dockerfiles/rmilter/supervisord.conf @@ -0,0 +1,18 @@ +[supervisord] +nodaemon=true + +[program:syslog-ng] +command=/usr/sbin/syslog-ng --foreground --no-caps +redirect_stderr=true +autostart=true +stdout_syslog=true + +[program:rmilter] +command=/usr/sbin/rmilter -n -c /etc/rmilter.conf.d/rmilter.conf +user=_rmilter +autorestart=true + +[program:rmilter-syslog] +command=/usr/bin/tail -f /var/log/syslog +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 diff --git a/data/Dockerfiles/sogo/Dockerfile b/data/Dockerfiles/sogo/Dockerfile index fdfc1b36..282bc406 100644 --- a/data/Dockerfiles/sogo/Dockerfile +++ b/data/Dockerfiles/sogo/Dockerfile @@ -3,15 +3,15 @@ MAINTAINER Andre Peters ENV DEBIAN_FRONTEND noninteractive ENV LC_ALL C +ENV GOSU_VERSION 1.9 RUN dpkg-divert --local --rename --add /sbin/initctl \ && ln -sf /bin/true /sbin/initctl \ && dpkg-divert --local --rename --add /usr/bin/ischroot \ && ln -sf /bin/true /usr/bin/ischroot -ENV GOSU_VERSION 1.9 -RUN set -x \ - && apt-get update && apt-get install -y --no-install-recommends apt-transport-https ca-certificates wget rsyslog supervisor mysql-client && rm -rf /var/lib/apt/lists/* \ +RUN apt-get update \ + && apt-get install -y --no-install-recommends apt-transport-https ca-certificates wget syslog-ng syslog-ng-core supervisor mysql-client cron \ && 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" \ @@ -27,8 +27,12 @@ RUN apt-key adv --keyserver keys.gnupg.net --recv-key 0x810273C4 \ && apt-get update \ && apt-get -y --force-yes install sogo sogo-activesync +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 +RUN echo '* * * * * sogo /usr/sbin/sogo-tool expire-sessions 60' >> /etc/cron.d/sogo +RUN echo '0 0 * * * sogo /usr/sbin/sogo-tool update-autoreply -p /etc/sogo/sieve.creds' >> /etc/cron.d/sogo + COPY ./docker-entrypoint.sh / -COPY ./sogo-cron.sh / COPY supervisord.conf /etc/supervisor/supervisord.conf EXPOSE 20000 diff --git a/data/Dockerfiles/sogo/docker-entrypoint.sh b/data/Dockerfiles/sogo/docker-entrypoint.sh index 2aa2ef2b..619badf6 100755 --- a/data/Dockerfiles/sogo/docker-entrypoint.sh +++ b/data/Dockerfiles/sogo/docker-entrypoint.sh @@ -1,7 +1,7 @@ #!/bin/bash -set -e -until mysql -u ${DBUSER} -p${DBPASS} ${DBNAME} -e ""; do +# Wait for MySQL to warm-up +while ! mysqladmin ping --host mysql --silent; do sleep 1 done @@ -89,7 +89,6 @@ echo ' ' >> /var/lib/sogo/GNUstep/Defaults/sogod.plist - # Fix permissions chown sogo:sogo -R /var/lib/sogo/ chmod 600 /var/lib/sogo/GNUstep/Defaults/sogod.plist diff --git a/data/Dockerfiles/sogo/sogo-cron.sh b/data/Dockerfiles/sogo/sogo-cron.sh deleted file mode 100755 index 14362145..00000000 --- a/data/Dockerfiles/sogo/sogo-cron.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - -while true; do -/usr/sbin/sogo-tool expire-sessions 60 -/usr/sbin/sogo-ealarms-notify -/usr/sbin/sogo-tool update-autoreply -p /etc/sogo/sieve.creds -sleep 60 -done diff --git a/data/Dockerfiles/sogo/supervisord.conf b/data/Dockerfiles/sogo/supervisord.conf index fcb30328..2377c3ff 100644 --- a/data/Dockerfiles/sogo/supervisord.conf +++ b/data/Dockerfiles/sogo/supervisord.conf @@ -1,11 +1,11 @@ [supervisord] nodaemon=true -[program:rsyslog] -command=/usr/sbin/rsyslogd -n -autostart=true -autorestart=true +[program:syslog-ng] +command=/usr/sbin/syslog-ng --foreground --no-caps redirect_stderr=true +autostart=true +stdout_syslog=true [program:sogo] command=/usr/sbin/sogod @@ -17,9 +17,8 @@ command=/usr/bin/tail -f /var/log/syslog -f /var/log/sogo/sogo.log stdout_logfile=/dev/fd/1 stdout_logfile_maxbytes=0 -[program:sogo-cron] -command=/sogo-cron.sh -user=sogo +[program:cron] +command=/usr/sbin/cron -f autorestart=true #[unix_http_server]