# Didier le 28 avril 2021 # conf postfix ok # sympa ne fonctionne pas en auto, lancer le contenu de la dernire ligne dans le container # le fichier preseed contient l' installation en mysql, mais il faudra revenir dessus en lancant sympa_wizard # ne pas oublier de verifier la fin du fichier sympa.conf qui doit contenir les lignes contenu dans le sympa.sh # Fanch janvier 2022 # migration en bullseye, tentative de rendre générique #FROM debian:bullseye FROM debian:trixie ######################################## # APT local cache # work around because COPY failed if no source file COPY .dummy .apt-mirror-confi[g] .proxy-confi[g] / RUN cp /.proxy-config /etc/profile.d/proxy.sh 2> /dev/null || true RUN if [ -f /.apt-mirror-config ] ; then . /.apt-mirror-config && sed -i \ -e "s%s\?://deb.debian.org%://${APT_MIRROR_DEBIAN}%g" \ -e "s%s\?://security.debian.org%://${APT_MIRROR_DEBIAN_SECURITY}%g" \ -e "s%s\?://archive.ubuntu.com%://${APT_MIRROR_UBUNTU}%g" \ -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 --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 ######################################## # 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 ######################################## 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/ \ && cp src/bash/* /home/filter/ 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 ######################################## 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 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' \ -i /etc/apache2/sites-available/default-ssl.conf \ && sed \ -e '/ServerName/a Redirect / https://MAILNAME.DOMAINNAME/' \ -i /etc/apache2/sites-available/000-default.conf \ && echo '\n \n\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>/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 ######################################## 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 ######################################## # Configuration Postfix ######################################## COPY dockers/sympa/config/transport /etc/postfix/ COPY dockers/sympa/config/postfix.sh /tmp/ RUN bash /tmp/postfix.sh ######################################## # 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 ######################################## RUN echo "root: ADMIN_EMAIL" >> /etc/aliases \ && postalias hash:/etc/aliases ######################################## # 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 # https://listes.renater.fr/sympa/arc/sympa-fr/2012-05/msg00042.html