【问题标题】:Logging to stdout in supervisord with docker使用 docker 在 supervisord 中记录到标准输出
【发布时间】:2015-07-15 21:38:46
【问题描述】:

我有一些需要运行 supervisord 的 docker 容器。

但是,我还没有设法让主管捕获日志并将它们输出到标准输出。主管似乎没有捕获他们的输出并以与 docker 配合得很好的方式将其吐出。我希望它前面加上进程名称或其他内容。

我该怎么做?从主管手册中不清楚。

我还会考虑使用主管以外的其他工具。它的缺点之一是它是用 python 编写的,这确实使 docker 容器膨胀。除了您的解决方案(如果有)之外,是否还有更优化的工具可以更好地与 docker 配合使用?

【问题讨论】:

    标签: logging docker supervisord


    【解决方案1】:

    我找到了使用 runit 的解决方案。

    runit 的设置只是稍微复杂一些,但不是很复杂,而且日志记录工作开箱即用。

    基本上你只需用apt-get install runit 安装runit。 然后创建一个运行文件复制到 /etc/service/{servicename}/run 运行文件只是一个执行服务名称的 bash 脚本。 它的标准输出是自动捕获的。

    我遇到的问题是将 nginx 日志记录到标准输出和标准错误。 我遵循了将内容写入 nginx.conf 的食谱。它没有用。有效的方法很简单:

    ln -sf /dev/stdout /var/log/nginx/access.log
    ln -sf /dev/stderr /var/log/nginx/error.log
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-12
      • 2020-07-08
      • 1970-01-01
      • 1970-01-01
      • 2016-06-10
      • 2022-08-10
      • 2016-09-24
      • 1970-01-01
      相关资源
      最近更新 更多