#!/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 は bind mount で失敗するため cat 経由で上書き) grep -v 'nameserver 127.0.0.11' /etc/resolv.conf > /tmp/resolv.new printf 'nameserver 8.8.8.8\nnameserver 1.1.1.1\n' >> /tmp/resolv.new cat /tmp/resolv.new > /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