From d128d46240c2173d2532727fe9cb1251d70b334b Mon Sep 17 00:00:00 2001 From: andryyy Date: Sun, 18 Dec 2016 12:52:32 +0100 Subject: [PATCH] New system for SOGo to be able to use cronjobs... mail alarms need bug fix from SOGo --- data/Dockerfiles/sogo/Dockerfile | 17 ++++++++-------- data/Dockerfiles/sogo/docker-entrypoint.sh | 8 ++------ data/Dockerfiles/sogo/sogo-cron.sh | 9 +++++++++ data/Dockerfiles/sogo/supervisord.conf | 23 ++++++++++++++++++++++ 4 files changed, 43 insertions(+), 14 deletions(-) create mode 100755 data/Dockerfiles/sogo/sogo-cron.sh create mode 100644 data/Dockerfiles/sogo/supervisord.conf diff --git a/data/Dockerfiles/sogo/Dockerfile b/data/Dockerfiles/sogo/Dockerfile index 9eb24203..69a418d8 100644 --- a/data/Dockerfiles/sogo/Dockerfile +++ b/data/Dockerfiles/sogo/Dockerfile @@ -5,7 +5,7 @@ ENV DEBIAN_FRONTEND noninteractive ENV GOSU_VERSION 1.9 RUN set -x \ - && apt-get update && apt-get install -y --no-install-recommends ca-certificates wget cron && rm -rf /var/lib/apt/lists/* \ + && apt-get update && apt-get install -y --no-install-recommends apt-transport-https ca-certificates wget rsyslog supervisor && 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" \ @@ -16,16 +16,17 @@ RUN set -x \ && chmod +x /usr/local/bin/gosu \ && gosu nobody true -RUN apt-get update \ - && apt-get -y --force-yes install apt-transport-https \ - && apt-key adv --keyserver keys.gnupg.net --recv-key 0x810273C4 \ +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 -y --force-yes install sogo sogo-activesync COPY ./docker-entrypoint.sh / - -ENTRYPOINT ["/docker-entrypoint.sh"] -CMD ["/usr/sbin/sogod"] +COPY ./sogo-cron.sh / +COPY supervisord.conf /etc/supervisor/supervisord.conf EXPOSE 20000 + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf + diff --git a/data/Dockerfiles/sogo/docker-entrypoint.sh b/data/Dockerfiles/sogo/docker-entrypoint.sh index 09f8ca34..8f17329f 100755 --- a/data/Dockerfiles/sogo/docker-entrypoint.sh +++ b/data/Dockerfiles/sogo/docker-entrypoint.sh @@ -8,10 +8,6 @@ ${AS_SOGO} defaults write sogod SOGoProfileURL "mysql://${DBUSER}:${DBPASS}@mysq ${AS_SOGO} defaults write sogod OCSFolderInfoURL "mysql://${DBUSER}:${DBPASS}@mysql:3306/${DBNAME}/sogo_folder_info" ${AS_SOGO} defaults write sogod OCSEMailAlarmsFolderURL "mysql://${DBUSER}:${DBPASS}@mysql:3306/${DBNAME}/sogo_alarms_folder" ${AS_SOGO} defaults write sogod OCSSessionsFolderURL "mysql://${DBUSER}:${DBPASS}@mysql:3306/${DBNAME}/sogo_sessions_folder" +${AS_SOGO} defaults write sogod SOGoTimeZone "${TZ}" -echo '* * * * * sogo /usr/sbin/sogo-tool expire-sessions 60' > /etc/cron.d/sogo -echo '* * * * * sogo /usr/sbin/sogo-ealarms-notify' >> /etc/cron.d/sogo - -cron - -exec ${AS_SOGO} "$@" +exec "$@" diff --git a/data/Dockerfiles/sogo/sogo-cron.sh b/data/Dockerfiles/sogo/sogo-cron.sh new file mode 100755 index 00000000..da51d784 --- /dev/null +++ b/data/Dockerfiles/sogo/sogo-cron.sh @@ -0,0 +1,9 @@ +#!/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 +sleep 60 +done diff --git a/data/Dockerfiles/sogo/supervisord.conf b/data/Dockerfiles/sogo/supervisord.conf new file mode 100644 index 00000000..16a8115b --- /dev/null +++ b/data/Dockerfiles/sogo/supervisord.conf @@ -0,0 +1,23 @@ +[supervisord] +nodaemon=true + +[program:rsyslog] +command=/usr/sbin/rsyslogd -n +autostart=true +autorestart=true +redirect_stderr=true + +[program:sogo] +command=/usr/sbin/sogod +user=sogo +autorestart=true + +[program:sogo-syslog] +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 +autorestart=true