Dockerizing Postfix 中继服务器
Dockerizing Postfix Relay server
我正在尝试构建一个专用于 Postfix SMTP 中继的 docker 容器。
试了几次都没成功。
这是docker文件
FROM centos:centos7
LABEL Author = "Aurelien HUGON
LABEL Description = "DOCKERFILE : Creates a Docker Container for a Relay Postfix smtp server"
#Update and soft
RUN yum update -y
RUN yum install -y nano postfix
#Clean install
RUN yum clean all
#Config
COPY /cfg/config.sh /
RUN chmod +x config.sh
RUN ./config.sh
RUN touch /var/log/maillog
CMD ["sh", "-c", "/sbin/postfix start", "tail -f /var/log/maillog"]
config.sh 文件包含:
postconf -e 'myhostname = myserverhostname'
postconf -e 'mydomain = domain.com'
postconf -e 'myorigin = $mydomain'
postconf -e 'smtp_generic_maps = hash:/etc/postfix/generic'
postconf -e 'mynetworks = 127.0.0.1/32 192.168.0.0/16 172.16.0.0/12 10.0.0.0/8 [::1]'
postconf -e 'mynetworks_style = class'
postconf -e 'inet_interfaces = all'
postconf -e 'relayhost = [dedicated SMTP server]'
echo "generic@adress.com generic2@adress2.com" > /etc/postfix/generic
postmap /etc/postfix/generic
我试图在我的 docker 文件中使用 "postfix start" 命令作为入口点,但容器立即关闭并显示 return 代码 0。
我尝试通过删除 /sbin/postfix start
部分来使用 CMD 启动容器,我的容器启动并稳定,但我必须手动启动 postfix 服务。然后我的中继工作。
但这是次优的。
我找到了使用 supervisord 的解决方案,但我想让我的容器尽可能简单。
我的目标是拥有一个轻型可互换中继器,以便从 docker 服务器上托管的应用程序发送我的邮件。
已添加 Postfix v3.3.0 support for container:
Container support: Postfix 3.3 will run in the foreground with "postfix start-fg".
如果您使用的是较低版本,您可能需要使用 supervisord 或无限循环或无限睡眠来阻止容器退出。
我终于决定作弊用Supervisord
您可以使用以下命令启动postfix
CMD ["/usr/libexec/postfix/master","-c", "/etc/postfix", "-d"]
我正在尝试构建一个专用于 Postfix SMTP 中继的 docker 容器。 试了几次都没成功。
这是docker文件
FROM centos:centos7
LABEL Author = "Aurelien HUGON
LABEL Description = "DOCKERFILE : Creates a Docker Container for a Relay Postfix smtp server"
#Update and soft
RUN yum update -y
RUN yum install -y nano postfix
#Clean install
RUN yum clean all
#Config
COPY /cfg/config.sh /
RUN chmod +x config.sh
RUN ./config.sh
RUN touch /var/log/maillog
CMD ["sh", "-c", "/sbin/postfix start", "tail -f /var/log/maillog"]
config.sh 文件包含:
postconf -e 'myhostname = myserverhostname'
postconf -e 'mydomain = domain.com'
postconf -e 'myorigin = $mydomain'
postconf -e 'smtp_generic_maps = hash:/etc/postfix/generic'
postconf -e 'mynetworks = 127.0.0.1/32 192.168.0.0/16 172.16.0.0/12 10.0.0.0/8 [::1]'
postconf -e 'mynetworks_style = class'
postconf -e 'inet_interfaces = all'
postconf -e 'relayhost = [dedicated SMTP server]'
echo "generic@adress.com generic2@adress2.com" > /etc/postfix/generic
postmap /etc/postfix/generic
我试图在我的 docker 文件中使用 "postfix start" 命令作为入口点,但容器立即关闭并显示 return 代码 0。
我尝试通过删除 /sbin/postfix start
部分来使用 CMD 启动容器,我的容器启动并稳定,但我必须手动启动 postfix 服务。然后我的中继工作。
但这是次优的。
我找到了使用 supervisord 的解决方案,但我想让我的容器尽可能简单。 我的目标是拥有一个轻型可互换中继器,以便从 docker 服务器上托管的应用程序发送我的邮件。
已添加 Postfix v3.3.0 support for container:
Container support: Postfix 3.3 will run in the foreground with "postfix start-fg".
如果您使用的是较低版本,您可能需要使用 supervisord 或无限循环或无限睡眠来阻止容器退出。
我终于决定作弊用Supervisord
您可以使用以下命令启动postfix
CMD ["/usr/libexec/postfix/master","-c", "/etc/postfix", "-d"]