Working towards a hassle-free Docker deployment
Hello,
due to the need to modernize our Mailman installation, I want to switch two installations to Mailman3.
My options currently seem to be:
- Install from distro repository (Ubunut 20.04) - they only have Version 3.2.2, which does not play well with the Python version 3.8.2 that's also in the repository :-(
- Install from sources - not really difficult, but I fear that regular updating might be a bit of a hassle, and integration into the system as a service needs a bit of manual work :-(
- Run the Docker images created by maxking, which would probably be the most painless option for one of the sites, but there's still a caveat :-(
One problem which is present in all 3 cases is that the mailman server (or container) is not on the same machine as Postfix. For mail input and output that's not a problem since Mailman speaks LMTP and SMTP, but sharing the Postfix maps between machines is a bit tricky. NFS should theoretically work, but getting all permissions right is not trivial. This is somewhat more pressing in Docker where I don't even have control over the UID running Mailman inside the container.
Therefore I would like to add a socketmap service to Mailman that Postfix can query to get map information. Since this idea is probably not totally original I'd like to ask on this list whether someone already tried such a thing, and what their experiences were.
Cheers, Hans-Martin
Just to keep anyone looking at this up-to-date:
I've settled for option 2 (installing from source) and fixed the separate-host problem by implementing an ersatz postmap script which calls postmap and then uses rsync to copy the files to the mail host:
#!/bin/bash
# in addition to running postmap, copy the files to our mail server
/usr/sbin/postmap $1
rsync -a $1 $1.db mail.heeg.de::postfix-mailman3/
Of course this requires setting up an entry in /etc/rsyncd.conf but then it works reasonably well.
The socketmap service is still something I'd like to tackle when I have time.
Cheers, Hans-Martin
participants (1)
-
Hans-Martin Mosner