gpt4 book ai didi

php - Docker:从一个容器中的应用程序和服务器登录

转载 作者:行者123 更新时间:2023-12-02 18:33:31 24 4
gpt4 key购买 nike

我想使用像Logentries这样的集中式日志捕获器,但是我不希望它的代理在我所有的容器中运行。因此,我计划让每个服务登录到其容器的标准输出,然后通过Docker API或日志记录容器将其传递到Logentries。

问题:如何处理需要输出两个日志的容器?如何在不引入其他日志记录机制的情况下使它们保持清洁和分离?

场景:我有一个PHP应用程序,它需要三个组件:Nginx,PHP-FPM和我的代码。我可以将Nginx和PHP-FPM放在单独的Docker容器中,因此它们将具有单独的日志,因此我们在这里很不错。但是我的PHP必须与Nginx放在同一个容器中,这样才能提供服务,对吗?当我的应用需要记录某些内容时(使用Monolog),我可以将其发送到容器的stdout中(例如,制作日志文件) (指向/ dev / stdout的链接),但随后我无法将Nginx和我的应用程序的日志分开。

有没有办法做到这一点?还是我看错了?有没有更好的方法可以在Docker中运行Nginx + PHP?

最佳答案

没有找到更好的解决方案,我最终将Laravel / Monolog日志记录到已安装卷中的文件中。然后,Logentries代理从容器的主机收集日志。因为我没有安装Supervisor或日志记录代理,所以这可以使容器保持尽可能的干净,并且可以使正在运行容器的任何对象以最小的努力访问日志。

事实证明,将日志记录到stdout并不是一种选择,因为PHP-FPM封装了子进程的每一行输出,从而使其难以解析,对于JSON日志,则完全没有用。 (请参阅https://groups.google.com/forum/#!topic/highload-php-en/VXDN8-Ox9-M)

关于php - Docker:从一个容器中的应用程序和服务器登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29550000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com