diff --git a/docker/amavis/Dockerfile b/docker/amavis/Dockerfile index 42c15929..22e0ba10 100644 --- a/docker/amavis/Dockerfile +++ b/docker/amavis/Dockerfile @@ -1,38 +1,39 @@ FROM apheleia/almalinux8 # ENV LANG=en_US.utf8 # ENV LC_ALL=en_US.utf8 # ENV APP_DOMAIN # ENV LMTP_DESTINATION # ENV DB_HOST # ENV DB_USERNAME # ENV DB_PASSWORD # ENV DB_DATABASE RUN dnf -y install \ amavis \ spamassassin \ clamav \ clamav-update && \ dnf clean all WORKDIR /root/ COPY /rootfs / RUN mkdir -p /var/run/amavisd /var/dkim && \ chmod -R 777 /var/run/amavisd /var/dkim && \ mkdir -p /var/spool/amavisd && \ chmod 777 /var/spool/amavisd VOLUME [ "/var/spool/amavisd" ] VOLUME [ "/var/lib/spamassassin" ] VOLUME [ "/var/lib/clamav" ] VOLUME [ "/var/dkim" ] ENV POSTFIX_HOST=postfix ENV DKIM_IDENTIFIER=dkim20240318 +ENV DEBUG=false CMD ["/init.sh"] EXPOSE 13024/tcp diff --git a/docker/amavis/rootfs/init.sh b/docker/amavis/rootfs/init.sh index aa4afc0f..07914889 100755 --- a/docker/amavis/rootfs/init.sh +++ b/docker/amavis/rootfs/init.sh @@ -1,56 +1,63 @@ #!/bin/sh set -e CONFIG="/etc/amavisd/amavisd.conf" sed -i -r \ -e "s|APP_DOMAIN|$APP_DOMAIN|g" \ -e "s|POSTFIX_HOST|$POSTFIX_HOST|g" \ $CONFIG DKIMKEYFILE="/var/dkim/$APP_DOMAIN.$DKIM_IDENTIFIER.pem" if ! [ -f $DKIMKEYFILE ]; then echo "Generating the DKIM keys at: $DKIMKEYFILE" amavisd -c $CONFIG genrsa $DKIMKEYFILE 2048 chmod g+r $DKIMKEYFILE chgrp amavis $DKIMKEYFILE chown -R amavis:amavis /var/dkim fi sed -i -r \ -e "s|DKIM_IDENTIFIER|$DKIM_IDENTIFIER|g" \ $CONFIG mkdir -p /var/run/amavisd chmod 777 /var/run/amavisd mkdir -p /var/spool/amavisd/tmp mkdir -p /var/spool/amavisd/db mkdir -p /var/spool/amavisd/quarantine chown -R amavis:amavis /var/spool/amavisd chown -R clamupdate:clamupdate /var/lib/clamav echo "DKIM keys:" amavisd -c $CONFIG showkeys # Initialize the clamav db. This command will have a non-zero exit code if no update is available. echo "Updating clamav db" /usr/bin/freshclam --datadir=/var/lib/clamav # Update once per day via daemon /usr/bin/freshclam -d -c 1 # Update the spam db every 30h echo "Updating spamassassin db" sa-update -v || : ##FIXME this probably doesn't work since we exec to amavisd #( #while true; do # sleep 30h # sa-update -v #done #) & echo "Starting clamd" clamd --config-file=/etc/clamd.d/amavisd.conf +# This allows to kill amavis to reload the config or code in a running container +if $DEBUG; then + echo "Starting amavis in debug mode" + while true; do + amavisd -c $CONFIG foreground + done +fi echo "Starting amavis" exec amavisd -c $CONFIG foreground