A container running postfix intended to be used as an internal mail relay to the outside world.
Optionally authenticate incoming connections with SASL
docker create \
--name=posfix \
-e PUID=1000 \
-e PGID=1000 \
-v </path/to/appdata/config>:/config \
-p 25:25 \
--restart unless-stopped \
jchonig/postfix
Compatible with docker-compose v2 schemas.
---
version: "2"
services:
postfix:
image: jchonig/postfix
environment:
- PUID=1000
- PGID=1000
volumes:
- </path/to/appdata/config>:/config
- data:/data
port:
- 25
restart: unless-stopped
volumes:
data:
| Volume | Function |
|---|---|
| 25 | The incoming SMTP port |
| Env | Function |
|---|---|
| PUID=1000 | for UserID - see below for explanation |
| PGID=1000 | for GroupID - see below for explanation |
| USE_SASL=yes | Use sasl for user authentication |
| USE_SASLAUTHD=yes | Use saslauthd |
| USE_DKIM=yes | Not yet implemented |
| USE_TLS=yes | Enable STARTTLS for incoming connections on port 25 |
| USE_SMTPS=yes | Enable TLS wrapper on port 465 |
| MYHOSTNAME=example.com | Configure postfix myhostname parameter |
| MYORIGIN=example.com | Configure postfix myorigin parameter |
| MYDESTINATION= | Configure postfix mydestination parameter |
| MASQUERADE_DOMAINS=example.com | A comma seperated list of domains to masquerade |
| SMTPD_TLS_SECURITY_LEVEL=may | Configure the level of TLS required on incomming connections |
| BOUNCE_QUEUE_LIFETIME=1d | Configure the postfix bounce queue lifetime |
| Volume | Function |
|---|---|
| /data | Persistent data (i.e. /data/spool) |
| /config | All the config files reside here |
- When USE_TLS is enabled, /config/server.cert and /config/server.key should exist
- When these files are updated, postfix is reloaded automatically
- When using SASL, /config/sasl.users should should have one entry per line of user and password seperated by a space
- WHen this file is updated, update_sasldb_users is run automatically
- Additonal postfix configuration can be stored in /config/postconf and /config/postconf.d/*
- These files contain arguments to the postconf command
- These files are processed when the container starts
- These files are reparsed automatically when they are modified or created
- The files in /config/postconf.d are not processed in a particular order
- Aliases are stored in /config/aliases
- If this file does not exists the default postfix file is copied to it
- When this file is updated, newaliases is run
- Set up DKIM
- Read and process generics and virtual? ...