From 38a3a3ee78711ef3ae2ecd5267892a3d181e2c87 Mon Sep 17 00:00:00 2001 From: David Beniamine <david.beniamine@tetras-libre.fr> Date: Wed, 24 Nov 2021 14:55:17 +0100 Subject: [PATCH] WIP sympa => postfix ok but postfix does not send mails to relay --- docker-compose.yml | 12 +++++ docker/postfix/etc/service/postfix/run.config | 6 ++- docker/sympa/Dockerfile | 6 ++- docker/sympa/entrypoint.sh | 54 +++++++++++++++---- shared.yml | 1 + 5 files changed, 65 insertions(+), 14 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 29192f9..60d593d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -23,6 +23,10 @@ services: SYMPA_DB_NAME: SYMPA_DB_USER: SYMPA_DB_PASSWD: + REMOTES: + networks: + - postfix + - default ports: - '8081:80' @@ -32,6 +36,8 @@ services: - "./sympa/shared:/etc/sympa/shared" - "./postfix/log:/var/log/postfix" - "spool_postfix:/var/spool/postfix" + networks: + - postfix environment: POSTFIX_VIRTUAL_DOMAINS: MAILNAME: @@ -56,3 +62,9 @@ volumes: spool_postfix: spool_nullmailer: lib_sympa: + +networks: + postfix: + ipam: + config: + - subnet: 10.42.0.0/16 diff --git a/docker/postfix/etc/service/postfix/run.config b/docker/postfix/etc/service/postfix/run.config index 6459d84..b71a28a 100644 --- a/docker/postfix/etc/service/postfix/run.config +++ b/docker/postfix/etc/service/postfix/run.config @@ -1,2 +1,4 @@ -sed "s/POSTFIX_VIRTUAL_DOMAINS/$POSTFIX_VIRTUAL_DOMAINS/g" /etc/postfix/main.cf.append > /etc/postfix/main.cf -cat /etc/postfix/master.cf.orig /etc/postfix/master.cf.append > /etc/postfix/master.cf +cp /etc/postfix/main.cf.orig /etc/postfix/main.cf +cp /etc/postfix/master.cf.orig /etc/postfix/master.cf +sed "s/POSTFIX_VIRTUAL_DOMAINS/$POSTFIX_VIRTUAL_DOMAINS/g" /etc/postfix/main.cf.append >> /etc/postfix/main.cf +cat /etc/postfix/master.cf.orig /etc/postfix/master.cf.append >> /etc/postfix/master.cf diff --git a/docker/sympa/Dockerfile b/docker/sympa/Dockerfile index 837456f..10d7e6c 100644 --- a/docker/sympa/Dockerfile +++ b/docker/sympa/Dockerfile @@ -10,8 +10,10 @@ RUN apt-get -y install \ libapache2-mod-fcgid \ libdbd-pg-perl \ libfcgi-perl \ + nullmailer \ openssh-server \ - sudo + sudo \ + supervisor RUN apt-get -y install --no-install-recommends sympa @@ -25,6 +27,8 @@ RUN echo "local1.* -/var/log/sympa.log" >> /etc/syslog.conf RUN cp -r /etc/sympa /etc/sympa.sample +COPY supervisord.conf /etc/supervisor/conf.d + COPY run.sh /opt/sympa_run.sh COPY entrypoint.sh /entrypoint diff --git a/docker/sympa/entrypoint.sh b/docker/sympa/entrypoint.sh index 37acf30..79a2e16 100755 --- a/docker/sympa/entrypoint.sh +++ b/docker/sympa/entrypoint.sh @@ -1,5 +1,6 @@ #!/bin/bash +## Init sympa # Populate volume if [ -z "$(ls /etc/sympa/)" ]; then cp -pr /etc/sympa.sample/* /etc/sympa/ @@ -20,14 +21,17 @@ done cp /opt/sympa_run.sh /etc/sympa/run.sh chmod +x /etc/sympa/run.sh # Fix permissions -chown -R sympa:sympa /etc/sympa/ +chown -Rh :sympa /etc/sympa/* +chown -Rh sympa:sympa /var/lib/sympa /var/spool/sympa +chmod 771 /var/spool/sympa +chmod 750 /etc/sympa/includes +chmod 640 /etc/sympa/includes/* +chown -Rh :sympa /etc/sympa/includes/* + /bin/mkdir -p /run/sympa /bin/chown sympa:sympa /run/sympa -# Launch services -syslogd - # So that Postfix can connect into us to deliver e-mail to mailing lists. /etc/sympa/shared is a # volume shared with the Postfix container which contains the SSH key that container should use # when connecting to this container. @@ -41,7 +45,7 @@ rm -f /etc/sympa/shared/known_hosts echo -n 'sympa ' > /etc/sympa/shared/known_hosts cat /etc/ssh/ssh_host_rsa_key.pub >> /etc/sympa/shared/known_hosts # Allow sympa user to ssh -usermod -s /bin/sh sympa +usermod -s /etc/sympa/run.sh sympa mkdir -p /var/lib/sympa/.ssh echo -n 'no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="/etc/sympa/run.sh" ' > /var/lib/sympa/.ssh/authorized_keys @@ -50,9 +54,37 @@ cat /etc/sympa/shared/id_rsa.pub >> /var/lib/sympa/.ssh/authorized_keys # Remove any stale config binaries. rm -f /etc/sympa/*/*.bin -sudo -u sympa /usr/lib/sympa/bin/sympa_automatic.pl --foreground 2>&1 & -sudo -u sympa /usr/lib/sympa/bin/sympa_msg.pl -/usr/bin/sympa --health_check -mkdir -p /var/run/sshd -/usr/sbin/sshd -D -e & -exec apache2ctl -DFOREGROUND +## Init apache2 +mkdir -p /var/log/apache2 +chown -R www-data:www-data /var/log/apache2 + +## Init ssh +mkdir /run/sshd + +### Init nullmailer +chown mail /var/spool/nullmailer + +# If directory is empty, we restore it from our copy of initial files +[[ $(ls -A /var/spool/nullmailer | grep -v placeholder) ]] || cp -a /var/spool/nullmailer.orig/* /var/spool/nullmailer/ + +if [ ! -p /var/spool/nullmailer/trigger ]; then + rm -f /var/spool/nullmailer/trigger + mkfifo /var/spool/nullmailer/trigger +fi +chown mail:root /var/spool/nullmailer/trigger +chmod 0622 /var/spool/nullmailer/trigger + +if [ -n "$ADMINADDR" ]; then + echo "$ADMINADDR" > /etc/nullmailer/adminaddr +fi + +if [ -n "$REMOTES" ]; then + echo "$REMOTES" > /etc/nullmailer/remotes +fi + +if [ -n "$HOSTNAME" ]; then + echo "$HOSTNAME" > /etc/mailname +fi + +# Launch all services +exec /usr/bin/supervisord diff --git a/shared.yml b/shared.yml index 3bd1976..e665647 100644 --- a/shared.yml +++ b/shared.yml @@ -4,6 +4,7 @@ services: sympa: networks: - default + - postfix - dolibarr_shared networks: -- GitLab