summaryrefslogtreecommitdiff
path: root/mail/entrypoint.sh
blob: 49d8d64c23aea1f894747e1862f2e982460070ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/env bash
set -e

KEY_FILE=/etc/opendkim/keys/mail.private

# Wait for DKIM key (mounted read-only from host)
for i in $(seq 1 30); do
    [[ -f "$KEY_FILE" ]] && break
    echo "Waiting for DKIM key at $KEY_FILE ... (run mail/install.sh on host)"
    sleep 2
done
if [[ ! -f "$KEY_FILE" ]]; then
    echo "ERROR: DKIM key not found at $KEY_FILE" >&2
    exit 1
fi

# Docker の embedded DNS (127.0.0.11) は MX クエリを解決できないことがあるため
# 外部 DNS に差し替える(コンテナ内の名前解決は不要なので問題なし)
sed -i 's/nameserver 127.0.0.11/nameserver 8.8.8.8/' /etc/resolv.conf
echo 'nameserver 1.1.1.1' >> /etc/resolv.conf

# Start rsyslog for Postfix logging
rsyslogd

# Start OpenDKIM (runs as root per opendkim.conf UserID)
opendkim -x /etc/opendkim.conf
sleep 2

# Start Postfix
postfix start

# Keep container alive, forward mail log to stdout
touch /var/log/mail.log
exec tail -f /var/log/mail.log