passe le docker sympa sous trixie
This commit is contained in:
+227
-45
@@ -6,7 +6,9 @@
|
||||
|
||||
# Fanch janvier 2022
|
||||
# migration en bullseye, tentative de rendre générique
|
||||
FROM debian:bullseye
|
||||
#FROM debian:bullseye
|
||||
|
||||
FROM debian:trixie
|
||||
|
||||
########################################
|
||||
# APT local cache
|
||||
@@ -20,54 +22,122 @@ RUN if [ -f /.apt-mirror-config ] ; then . /.apt-mirror-config && sed -i \
|
||||
-e "s%s\?://security.ubuntu.com%://${APT_MIRROR_UBUNTU_SECURITY}%g" \
|
||||
/etc/apt/sources.list; fi
|
||||
|
||||
|
||||
########################################
|
||||
# Locale
|
||||
########################################
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y locales locales-all \
|
||||
&& sed -i '/fr_FR.UTF-8/s/^# //g' /etc/locale.gen && locale-gen
|
||||
ENV LC_ALL fr_FR.UTF-8
|
||||
ENV LANG fr_FR.UTF-8
|
||||
ENV LANGUAGE fr_FR:fr
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
locales \
|
||||
locales-all \
|
||||
&& sed -i '/fr_FR.UTF-8/s/^# //g' /etc/locale.gen \
|
||||
&& locale-gen \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV LC_ALL=fr_FR.UTF-8
|
||||
ENV LANG=fr_FR.UTF-8
|
||||
ENV LANGUAGE=fr_FR:fr
|
||||
|
||||
RUN update-locale LANG=fr_FR.UTF-8 \
|
||||
&& echo sympa >/etc/hostname
|
||||
|
||||
RUN apt-get -y install libboost-program-options-dev libboost-system-dev libboost-filesystem-dev libcurl4-gnutls-dev
|
||||
#RUN apt-get -y install emacs elpa-php-mode
|
||||
RUN apt-get -y install procps dos2unix
|
||||
########################################
|
||||
# Dépendances de compilation
|
||||
########################################
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
ca-certificates \
|
||||
libboost-program-options-dev \
|
||||
libboost-system-dev \
|
||||
libboost-filesystem-dev \
|
||||
libcurl4-gnutls-dev \
|
||||
procps \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
build-essential \
|
||||
make \
|
||||
g++ \
|
||||
libssl-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
########################################
|
||||
# Création du user filter
|
||||
########################################
|
||||
|
||||
RUN mkdir /home/filter \
|
||||
&& useradd -d /home/filter filter \
|
||||
&& chown filter /home/filter
|
||||
|
||||
########################################
|
||||
# Depollueur
|
||||
########################################
|
||||
|
||||
# creation du user filter,son repertoire home, copie des fichiers
|
||||
RUN mkdir /home/filter ; useradd -d /home/filter filter ; chown filter /home/filter
|
||||
RUN apt-get install -y --fix-missing doxygen dos2unix git \
|
||||
build-essential make g++ libboost-program-options-dev libboost-system-dev libboost-filesystem-dev libcurl4-gnutls-dev libssl-dev
|
||||
WORKDIR /home/
|
||||
|
||||
RUN update-ca-certificates
|
||||
RUN git clone https://git.kaz.bzh/KAZ/depollueur.git
|
||||
|
||||
WORKDIR /home/depollueur/
|
||||
|
||||
RUN make
|
||||
RUN cp build/out/* /home/filter/
|
||||
RUN cp src/bash/* /home/filter/
|
||||
|
||||
RUN chown filter /home/filter/*; chmod 755 /home/filter/*
|
||||
RUN cp build/out/* /home/filter/ \
|
||||
&& cp src/bash/* /home/filter/
|
||||
|
||||
# creation du repertoire filter et application des bons droits pour le filtre
|
||||
RUN mkdir -p /var/log/mail; touch /var/log/mail/filter.log ; chown filter /var/log/mail/filter.log ; chmod 777 /var/log/mail/filter.log
|
||||
RUN mkdir -p /var/spool/filter ; chmod 775 /var/spool/filter ; chown filter /var/spool/filter
|
||||
RUN mkdir -p /var/log/mail/pb ; chmod a+rwx /var/log/mail/pb
|
||||
RUN chown filter /home/filter/* \
|
||||
&& chmod 755 /home/filter/*
|
||||
|
||||
########################################
|
||||
# Répertoires du filtre
|
||||
########################################
|
||||
|
||||
RUN mkdir -p /var/log/mail \
|
||||
&& touch /var/log/mail/filter.log \
|
||||
&& chown filter /var/log/mail/filter.log \
|
||||
&& chmod 777 /var/log/mail/filter.log
|
||||
|
||||
RUN mkdir -p /var/spool/filter \
|
||||
&& chmod 775 /var/spool/filter \
|
||||
&& chown filter /var/spool/filter
|
||||
|
||||
RUN mkdir -p /var/log/mail/pb \
|
||||
&& chmod a+rwx /var/log/mail/pb
|
||||
|
||||
########################################
|
||||
# OpenDKIM
|
||||
########################################
|
||||
|
||||
# install de opendkim
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
opendkim \
|
||||
opendkim-tools \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
########################################
|
||||
# Sympa / Apache / Postfix
|
||||
########################################
|
||||
|
||||
COPY dockers/sympa/config/sympa.preseed /tmp/sympa.preseed
|
||||
|
||||
RUN debconf-set-selections < /tmp/sympa.preseed \
|
||||
&& apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends sympa apache2 postfix supervisor anacron spawn-fcgi libapache2-mod-fcgid apg curl \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||
sympa \
|
||||
dbconfig-sqlite3 \
|
||||
apache2 \
|
||||
postfix \
|
||||
supervisor \
|
||||
anacron \
|
||||
spawn-fcgi \
|
||||
libapache2-mod-fcgid \
|
||||
apg \
|
||||
curl \
|
||||
&& a2enmod rewrite ssl proxy_fcgi \
|
||||
&& a2ensite default-ssl \
|
||||
&& a2enconf sympa-soap \
|
||||
\
|
||||
&& sed \
|
||||
-e 's%SSLCertificateKeyFile\s.*$%SSLCertificateKeyFile ENVKEY%g' \
|
||||
-e 's%SSLCertificateFile\s.*$%SSLCertificateFile ENVCERT%g' \
|
||||
@@ -75,61 +145,173 @@ RUN debconf-set-selections < /tmp/sympa.preseed \
|
||||
&& sed \
|
||||
-e '/ServerName/a Redirect / https://MAILNAME.DOMAINNAME/' \
|
||||
-i /etc/apache2/sites-available/000-default.conf \
|
||||
&& echo '<head>\n <meta http-equiv="Refresh" content="0; URL=https://MAILNAME.DOMAINNAME/wws" />\n</head>\n' > /var/www/html/index.html \
|
||||
&& sed -e 's%ScriptAlias.*%ProxyPass "/wws" "fcgi://localhost:8442/"%' -i /etc/apache2/conf-enabled/sympa.conf \
|
||||
&& sed -e 's%ScriptAlias.*%ProxyPass "/sympasoap" "fcgi://localhost:8443/"%' -i /etc/apache2/conf-enabled/sympa-soap.conf
|
||||
&& echo '<head>\n <meta http-equiv="Refresh" content="0; URL=https://MAILNAME.DOMAINNAME/wws" />\n</head>\n' \
|
||||
> /var/www/html/index.html \
|
||||
# sous bullseye
|
||||
# && sed \
|
||||
# -e 's%ScriptAlias.*%ProxyPass "/wws" "fcgi://localhost:8442/"%' \
|
||||
# -i /etc/apache2/conf-enabled/sympa.conf \
|
||||
# sous trixie
|
||||
&& sed \
|
||||
-i '/<Location \/wws>/,/<\/Location>/c\ ProxyPass "/wws" "fcgi://localhost:8442/"' \
|
||||
/etc/apache2/conf-enabled/sympa.conf \
|
||||
&& sed \
|
||||
-e 's%ScriptAlias.*%ProxyPass "/sympasoap" "fcgi://localhost:8443/"%' \
|
||||
-i /etc/apache2/conf-enabled/sympa-soap.conf \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
########################################
|
||||
# Confort : .bashrc de root
|
||||
########################################
|
||||
|
||||
# pour le confort : modif du .bashrc de root
|
||||
RUN sed -i 's/# alias/alias/g' /root/.bashrc \
|
||||
&& sed -i 's/# export/export/g' /root/.bashrc \
|
||||
&& sed -i 's/# eval/eval/g' /root/.bashrc
|
||||
|
||||
########################################
|
||||
# Supervisor
|
||||
########################################
|
||||
|
||||
COPY dockers/sympa/config/supervisord.conf /etc/supervisord.conf
|
||||
|
||||
########################################
|
||||
# Logs Sympa
|
||||
########################################
|
||||
|
||||
RUN touch /var/log/sympa.log \
|
||||
&& chmod 640 /var/log/sympa.log \
|
||||
&& echo "local1.* -/var/log/sympa.log" >>/etc/rsyslog.conf
|
||||
&& echo "local1.* -/var/log/sympa.log" >> /etc/rsyslog.conf
|
||||
|
||||
########################################
|
||||
# Configuration Postfix
|
||||
########################################
|
||||
|
||||
# configuration de postfix
|
||||
COPY dockers/sympa/config/transport /etc/postfix/
|
||||
COPY dockers/sympa/config/postfix.sh /tmp
|
||||
COPY dockers/sympa/config/postfix.sh /tmp/
|
||||
|
||||
RUN bash /tmp/postfix.sh
|
||||
|
||||
# # modif des fichiers de postfix pour filter
|
||||
RUN cat /home/filter/master.cf.update >>/etc/postfix/master.cf \
|
||||
&& sed -i 's/^\(smtp .*smtpd\)$/\1\n\t-o content_filter=filter:dummy/' /etc/postfix/master.cf
|
||||
########################################
|
||||
# Filtre Postfix
|
||||
########################################
|
||||
|
||||
RUN cat /home/filter/master.cf.update >> /etc/postfix/master.cf \
|
||||
&& sed -i \
|
||||
's/^\(smtp .*smtpd\)$/\1\n\t-o content_filter=filter:dummy/' \
|
||||
/etc/postfix/master.cf
|
||||
|
||||
########################################
|
||||
# Milter OpenDKIM
|
||||
########################################
|
||||
|
||||
RUN postconf "smtpd_milters = inet:localhost:8891" \
|
||||
&& postconf "non_smtpd_milters = inet:localhost:8891"
|
||||
|
||||
########################################
|
||||
# Alias root
|
||||
########################################
|
||||
|
||||
# pour qu'admin@kaz.bzh recoivent les mails d'anomalie
|
||||
RUN echo "root: ADMIN_EMAIL" >> /etc/aliases \
|
||||
&& postalias hash:/etc/aliases
|
||||
|
||||
# Configuration de sympa
|
||||
RUN echo aliases_program postalias >>/etc/sympa/sympa/sympa.conf \
|
||||
&& echo sendmail /usr/sbin/sendmail >>/etc/sympa/sympa/sympa.conf \
|
||||
&& echo soap_url /sympasoap >>/etc/sympa/sympa/sympa.conf \
|
||||
&& echo dmarc_protection.mode dmarc_reject,dmarc_quarantine >>/etc/sympa/sympa/sympa.conf \
|
||||
&& cp /usr/share/doc/sympa/examples/script/sympa_soap_client.pl.gz /usr/lib/sympa/bin/ \
|
||||
&& gunzip /usr/lib/sympa/bin/sympa_soap_client.pl.gz \
|
||||
&& chmod +x /usr/lib/sympa/bin/sympa_soap_client.pl \
|
||||
&& chown sympa:sympa /usr/lib/sympa/lib/sympa/* \
|
||||
########################################
|
||||
# Correctif Sympa CLI.pm
|
||||
# --> corrigé en 6.2.78 (mais absent de trixie)
|
||||
#
|
||||
# Bug rencontré avec Sympa 6.2.76~dfsg-1 :
|
||||
# Sympa::CLI.pm transforme les spécifications
|
||||
# d'options Getopt::Long de manière incorrecte.
|
||||
#
|
||||
# Exemple :
|
||||
# config|f=s
|
||||
#
|
||||
# est transformé en :
|
||||
# config|config|f|f=s
|
||||
#
|
||||
# ce qui provoque au lancement de "sympa check" :
|
||||
# Spécification en double "config|config|f|f=s"
|
||||
#
|
||||
# Même problème pour debug|d, lang|l, mail|m, etc.
|
||||
#
|
||||
# Cause :
|
||||
# le code ajoute deux fois chaque nom d'option lors
|
||||
# de la transformation des alias.
|
||||
#
|
||||
# Code original :
|
||||
# $keys = join '|', map {
|
||||
# (s/-/_/gr, $_)
|
||||
# } split /[|]/, $keys;
|
||||
#
|
||||
# Correction :
|
||||
# $keys = join '|', map { s/-/_/gr } split /[|]/, $keys;
|
||||
#
|
||||
# Ce correctif est appliqué à l'image afin de ne pas
|
||||
# perdre la modification lors de la recréation du conteneur.
|
||||
########################################
|
||||
|
||||
RUN sed -i 's/(s\/-\/_\/gr, \$_)/(s\/-\/_\/gr)/' \
|
||||
/usr/share/sympa/lib/Sympa/CLI.pm
|
||||
|
||||
########################################
|
||||
# Configuration Sympa
|
||||
########################################
|
||||
|
||||
RUN echo aliases_program postalias >> /etc/sympa/sympa/sympa.conf \
|
||||
&& echo sendmail /usr/sbin/sendmail >> /etc/sympa/sympa/sympa.conf \
|
||||
&& echo soap_url /sympasoap >> /etc/sympa/sympa/sympa.conf \
|
||||
&& echo dmarc_protection.mode dmarc_reject,dmarc_quarantine >> /etc/sympa/sympa/sympa.conf \
|
||||
# && cp /usr/share/doc/sympa/examples/script/sympa_soap_client.pl.gz /usr/lib/sympa/bin/ \
|
||||
# && gunzip /usr/lib/sympa/bin/sympa_soap_client.pl.gz \
|
||||
# && chmod +x /usr/lib/sympa/bin/sympa_soap_client.pl \
|
||||
# && chown sympa:sympa /usr/lib/sympa/lib/sympa/* \
|
||||
&& chmod u+s /usr/lib/sympa/lib/sympa/*
|
||||
|
||||
|
||||
|
||||
COPY dockers/sympa/config/aliases.sympa.postfix /etc/sympa/aliases.sympa.postfix
|
||||
COPY dockers/sympa/config/trusted_applications.conf /etc/sympa/trusted_applications.conf
|
||||
|
||||
|
||||
RUN postconf "alias_maps = hash:/etc/aliases,hash:/etc/sympa/aliases.sympa.postfix,hash:/etc/mail/sympa/aliases" \
|
||||
&& postconf "alias_database = hash:/etc/aliases,hash:/etc/sympa/aliases.sympa.postfix" \
|
||||
&& postalias hash:/etc/sympa/aliases.sympa.postfix \
|
||||
&& usermod -a -G sympa postfix
|
||||
|
||||
########################################
|
||||
# Wrapper Postfix
|
||||
########################################
|
||||
|
||||
COPY dockers/sympa/config/postfix-wrapper.sh /usr/local/bin/
|
||||
|
||||
RUN chmod a+x /usr/local/bin/postfix-wrapper.sh
|
||||
|
||||
|
||||
#######################
|
||||
# ATTENTION !!!! à passer après le build
|
||||
######################
|
||||
#les volume Docker ont conservé les anciens UID/GID de Bullseye, il faut redonner à sympa
|
||||
#docker exec sympaServ chown -R sympa:sympa /var/spool/sympa
|
||||
#docker exec sympaServ chown -R sympa:sympa /var/lib/sympa/list_data
|
||||
#docker exec sympaServ chown -R sympa:sympa /var/lib/sympa/arc
|
||||
|
||||
#pareil pour postfix (check avec docker exec sympaServ postfix check)
|
||||
#docker exec sympaServ postfix set-permissions
|
||||
######################
|
||||
|
||||
#CHANGEMENT DE bulleyes à trixie
|
||||
RUN chown sympa:sympa /usr/lib/sympa/bin/queue \
|
||||
&& chmod 4755 /usr/lib/sympa/bin/queue
|
||||
|
||||
########################################
|
||||
# Démarrage
|
||||
########################################
|
||||
|
||||
COPY dockers/sympa/config/start.sh /
|
||||
|
||||
ENTRYPOINT ["/bin/bash", "/start.sh"]
|
||||
|
||||
EXPOSE 80 443 25
|
||||
|
||||
# docs sympa : https://listes.renater.fr/sympa/arc/sympa-fr/2021-02/msg00026.html
|
||||
# docs sympa :
|
||||
# https://listes.renater.fr/sympa/arc/sympa-fr/2021-02/msg00026.html
|
||||
# https://listes.renater.fr/sympa/arc/sympa-fr/2012-05/msg00042.html
|
||||
|
||||
@@ -31,14 +31,14 @@ command=/usr/sbin/rsyslogd -n
|
||||
stdout_events_enabled=true
|
||||
stderr_events_enabled=true
|
||||
|
||||
#[program:opendkim]
|
||||
#startsecs=0
|
||||
#stopwaitsecs=10
|
||||
#autostart=true
|
||||
#autorestart=true
|
||||
#command=/usr/sbin/opendkim -f -x /etc/opendkim/opendkim.conf
|
||||
#stdout_events_enabled=true
|
||||
#stderr_events_enabled=true
|
||||
[program:opendkim]
|
||||
startsecs=0
|
||||
stopwaitsecs=10
|
||||
autostart=true
|
||||
autorestart=true
|
||||
command=/usr/sbin/opendkim -f -x /etc/opendkim/opendkim.conf
|
||||
stdout_events_enabled=true
|
||||
stderr_events_enabled=true
|
||||
|
||||
[program:postfix]
|
||||
startsecs=0
|
||||
|
||||
@@ -2,14 +2,16 @@ postfix postfix/mailname string MAILNAME.DOMAINNAME
|
||||
postfix postfix/main_mailer_type string 'Pas de configuration'
|
||||
|
||||
sympa sympa/dbconfig-install boolean true
|
||||
sympa sympa/database-type select sqlite3
|
||||
sympa sympa/listmaster string admin@kaz.bzh
|
||||
sympa sympa/hostname string MAILNAME.DOMAINNAME
|
||||
sympa sympa/sympa_newaliases-wrapper-setuid-root boolean true
|
||||
sympa sympa/listmaster string LISTMASTERS
|
||||
|
||||
sympa wwsympa/webserver_type select Apache 2
|
||||
sympa wwsympa/wwsympa_url string https://MAILNAME.DOMAINNAME/wws
|
||||
|
||||
sympa sympa/use_soap boolean false
|
||||
|
||||
# à garder dans un coin
|
||||
# sympa sympa/use_wwsympa boolean true
|
||||
# sympa wwsympa/fastcgi boolean true
|
||||
# sympa sympa/use_soap boolean true
|
||||
# sympa sympa/use_soap boolean true
|
||||
|
||||
Reference in New Issue
Block a user