docker postfix - 缺少日志

标签 docker logging postfix-mta

我像这样创建了 docker 容器:

FROM debian

RUN export DEBIAN_FRONTEND=noninteractive
RUN apt-get update
RUN apt-get install -y syslog-ng syslog-ng-core
RUN apt-get install -y postfix vim \
&& rm -rf /var/lib/apt/lists/*

CMD /etc/init.d/postfix start && /bin/bash

然后像这样开始:

docker run --name testmailsrv -p 25:25 -p 143:143 -p 993:993 -v mailsrvpostfixetc:/etc/postfix -v mailsrvdovecotetc:/etc/dovecot -it mailsrv/mailsrv-0.6:latest

我的 postrix 无法正常工作,但我找不到任何日志来诊断它。没有文件/var/log/mail.log,journalclt 没有输出,“docker log”命令没有任何有趣的内容。 如何在 docker 中查看 postfix 的任何日志?

最佳答案

This image建议:

# Use syslog-ng to get Postfix logs (rsyslog uses upstart which does not seem
# to run within Docker).
run apt-get install -q -y syslog-ng

expose 25
cmd ["sh", "-c", "service syslog-ng start ; service postfix start ; tail -F /var/log/mail.log"]

这可能更容易生成和查看这些日志(作为主线程的输出)


此外,satnhak建议在 the comments (2021 年):

You probably also need this: syslog-ng/syslog-ng issue 2407

指的是syslog-ng/syslog-ng PR 2408 : "系统源:检查/proc/kmsg是否可以打开"。

或者您需要在配置中:

    source s_local { 
        system(
            exclude-kmsg(yes)
        ); 
        internal(); 
    };

萨特哈克补充道:

adding this to the Dockerfile does the trick:

RUN sed -i 's/system()/system(exclude-kmsg(yes))/g' \
    /etc/syslog-ng/syslog-ng.conf

关于docker postfix - 缺少日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46998673/

相关文章:

docker - 用Docker在Tensorflow上调试的简单方法是什么?

azure - 如何在日志流中显示所有Azure日志

python - 对于给定进程, `supervisorctl tail` 是如何工作的?

java - 您能解释一下这个 GC 日志消息吗?

linux - Postfix 554 中继访问被拒绝错误

docker - 如何从主机上的虚拟机访问docker app?

docker - 如何从Docker容器获取远程计算机的MAC地址

r - 在哪里可以找到 R session 警告日志?

ssl - startssl 证书不与 Postfix 和 dovecot 一起运行

email - 已发送但未收到 Postfix/dovecot 电子邮件