【发布时间】:2020-03-01 09:43:07
【问题描述】:
我的 PHP 容器运行 puppeteer 来生成 PDF。通过生成 PDF 文档,它还在我的容器内创建了两个核心转储文件。我不确定它们实际上来自哪里。
主机/服务器是 CentOS 7。
我检查了以下内容:
- 没有应用程序错误日志,Browsershot/puppeteer 正在运行且没有错误。
- 在
/var/log/messages中找不到错误日志(例如段错误)
我已尝试禁用核心转储
按照https://linux-audit.com/understand-and-configure-core-dumps-work-on-linux/ 的禁用核心转储部分,我已经完成了:
- 将以下内容添加到
/etc/security/limits.conf
* soft core 0
* hard core 0
创建了一个 disable-core-dumps.sh:
echo “ulimit -c 0 > /dev/null 2>&1” > /etc/profile.d/disable-coredumps.sh在
/etc/systemd/coredump.conf添加了以下内容
[Coredump]
Storage=none
ProcessSizeMax=0
然后重启服务器和容器。
我也尝试在容器内设置
ulimit -c 0(高山)
以上所有技巧都不适合我。每次 puppeteer 生成 PDF 时,它总是会创建两个核心转储文件,如下所示:
core.131 core.52
核心文件如下所示:
谁能帮我禁用核心转储?非常感谢。
【问题讨论】:
-
我认为您需要禁用主机而不是容器上的核心转储,或者将您的容器作为预先授权的容器运行
-
@LinPy 我已经按照linux-audit.com/… 禁用了主机上的核心转储。尝试在主机和容器上禁用核心转储。它们都不起作用。
-
如果您想找到这些核心转储的根本原因而不是禁用它们,那么我建议您更多地研究 puppeteer。由于 puppeteer 使用 nodejs 并且 coredump 中包含 nodejs 模块/库,因此看起来就像一个有故障的 nodejs 进程。有一些调试选项可以使用,例如禁用 puppeteer 的无头模式正在启用详细日志记录。以下是更多信息的链接:github.com/puppeteer/puppeteer#debugging-tips。
-
尝试编辑 /etc/security/limits.conf /etc/systemd/coredump.conf insitde 容器,例如在描述如何构建镜像的 Docker 文件中
-
@ahasbini 奇怪的是 PDF 是完美生成的。我启用了调试,但找不到任何有用的东西。只是核心转储。
标签: docker docker-compose puppeteer alpine coredump