有没有办法在前台运行 Postfix?
我想在 docker 中将 Postfix 作为 PID 1 运行。我不想使用任何 bash shell、supervisorD 或任何包装器来启动它。
我只想知道是否有任何方法可以在前台启动它,以便我可以从“docker logs 'container-name'”检查它的日志
当我手动运行“postfix start”时,它会运行,然后在后台启动。有什么办法让它保持在前台?
谢谢
有没有办法在前台运行 Postfix?
我想在 docker 中将 Postfix 作为 PID 1 运行。我不想使用任何 bash shell、supervisorD 或任何包装器来启动它。
我只想知道是否有任何方法可以在前台启动它,以便我可以从“docker logs 'container-name'”检查它的日志
当我手动运行“postfix start”时,它会运行,然后在后台启动。有什么办法让它保持在前台?
谢谢
从 Postfix 3.3 版开始,您还可以使用
postfix start-fg
,根据文档:它使事情变得更容易!
从 Postfix 3.3 开始,原生支持 docker。只需构建并运行这个 Dockerfile :
Postfix需要一个 syslog 守护进程来进行日志记录。有关
Dockerfile
正在运行的 Postfix的简明示例,请参阅jessfraz/dockerfiles/postfix。这在容器中运行
rsyslog
,并以这样的方式启动Postfix:如果我理解您的问题,您想在前台运行 postfix,以便将其日志发送到标准输出,您可以使用 docker 日志显示它们。
您不能以将日志发送到标准输出的方式运行 Postfix。来自官方文档“Postfix daemon processes run in the background, and log issues and normal activity to the syslog daemon.”,因此 Postfix 使用 syslogd 来管理其日志,这是您无法避免的要求。
由于 Docker 将“忽略”未发送到 stdout/stderr 的日志输出,因此您应该寻找替代方案。
此对话为您提供了有关 Docker 中的 postfix 和 syslogd 要求以及可能的策略的更多信息。基本上,它会尝试将 syslog 输出发送到主机的 syslog 日志文件,但您将无法使用 docker 日志来读取它们。
Docker Hub 中的这个旧容器试图做你想做的事,至少解释了你想要解决的同一个问题。
最后,我发现这篇文章有助于理解从容器中获取 syslogd 信息的问题(在 nabble 讨论中引用)。
从 Postfix 3.4 开始,这得到了适当的支持,从而限制了 syslog 依赖性。
摘自postfix/MAILLOG_README:
我用于启动 Postfix 的 Docker 入口点利用
postconf
如下所述修补配置: