public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
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
New system for SOGo to be able to use cronjobs... mail alarms need bug fix from SOGo
d128d462
data/Dockerfiles/sogo/Dockerfile | 15 ++++++++-------
data/Dockerfiles/sogo/docker-entrypoint.sh | 8 ++------
data/Dockerfiles/sogo/sogo-cron.sh | 9 +++++++++
data/Dockerfiles/sogo/supervisord.conf | 23 +++++++++++++++++++++++
4 files changed, 42 insertions(+), 13 deletions(-)
create mode 100755 data/Dockerfiles/sogo/sogo-cron.sh
create mode 100644 data/Dockerfiles/sogo/supervisord.conf
Diff
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 /
+COPY ./sogo-cron.sh /
+COPY supervisord.conf /etc/supervisor/supervisord.conf
+
+EXPOSE 20000
ENTRYPOINT ["/docker-entrypoint.sh"]
-CMD ["/usr/sbin/sogod"]
+CMD exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
-EXPOSE 20000
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