NobGit
public nobgit read

NobMail

Based on mailcow: dockerized

Languages

Repository composition by tracked source files.

PHP
PHP 49% JavaScript 35% HTML 9% CSS 4% Shell 2% Python 1% Lua 0% Perl 0% Ruby 0% SCSS 0%
Create file Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git

Commit

Added cron to SOGo, init config on start, added syslog to rmilter

29f343c1
andryyy <[email protected]> 10 years ago
data/Dockerfiles/rmilter/Dockerfile        | 12 +++++++-----
 data/Dockerfiles/rmilter/supervisord.conf  | 18 ++++++++++++++++++
 data/Dockerfiles/sogo/Dockerfile           | 12 ++++++++----
 data/Dockerfiles/sogo/docker-entrypoint.sh |  5 ++---
 data/Dockerfiles/sogo/sogo-cron.sh         | 10 ----------
 data/Dockerfiles/sogo/supervisord.conf     | 13 ++++++-------
 6 files changed, 41 insertions(+), 29 deletions(-)
 create mode 100644 data/Dockerfiles/rmilter/supervisord.conf
 delete mode 100755 data/Dockerfiles/sogo/sogo-cron.sh

Diff

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"]
+COPY supervisord.conf /etc/supervisor/supervisord.conf
 
-RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
+EXPOSE 9000
 
-USER _rmilter
+RUN sed -i -E 's/^(\s*)system\(\);/\1unix-stream("\/dev\/log");/' /etc/syslog-ng/syslog-ng.conf
 
-EXPOSE 9000
+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 <[email protected]>
 
 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 '    </dict>
 </dict>
 </plist>' >> /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]