php - docker 不使用 symfony 和 monolog 捕获 php-fpm 输出
问题描述
我正在使用该图像richarvey/nginx-php-fpm:latest
(1.5.2),并基于该图像启动了一个容器并在其中执行/bin/bash
。
我在那里:
- 已安装作曲家
- 使用创建了一个新的 symfony4 项目
composer create-project symfony/website-skeleton my-project
已编辑
my-project/config/packages/dev/monolog.yaml
设置:monolog: handlers: main: type: stream path: 'php://stderr' level: debug channels: ["!event"]
使用获取我的 docker 映像的 IP
docker inspect
- 并使用转储我的容器日志
docker logs -f <my container>
当我加载时http://<my container ip>/my-project/public
,我在容器日志输出中看不到 symfony 调试日志。
注意:我看到了 nginx 日志。
解决方案
我的一位同事找到了解决方案,并且 docker 镜像维护者实现了它:
由于 php-fpm 在 nodaemonized 模式下运行,您需要设置--force-stderr
标志“即使 stderr 不是 TTY,也要在 nodaemonize 中强制输出到 stderr”。
推荐阅读
- java - 想要自动化的移动应用程序
- rust - 在 Stream 中使用异步 fn 时的生命周期冲突
- javascript - 使用 JavaScript 在 JSON 格式的 MySQL 查询中创建 TABLE
- asp.net - 未捕获的错误:无法将“未定义”转换为日期(角度)
- c++ - 我在使用不同变量循环模拟时遇到问题
- google-sheets - 与服务帐户信息共享或检索与特定服务帐户共享的所有文档?
- python - 我在 python 部门中无法获得浮点数
- mongodb - MongoDB在聚合中排序和查找之间的区别
- javascript - 基于 JSON api 响应构建数组
- android - 使用了与 Android 的 Jetpack 的 CameraX 文档中相同的代码,但没有找到 PreviewView