我像这样创建了 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/