我的PHP容器运行puppeteer生成PDF。通过生成PDF文档,它还在我的容器内创建了两个核心转储文件。我不确定它们的真正来源。

主机/服务器是CentOS 7。

我检查了以下内容:

  • 没有应用程序错误日志,Browsershot / puppeteer正在运行,没有错误。
  • /var/log/messages
  • 中找不到错误日志(例如segfault)

    我试图禁用核心转储

    通过遵循https://linux-audit.com/understand-and-configure-core-dumps-work-on-linux/的Disable core dumps部分,我完成了:
  • 将以下内容添加到/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
    
  • 重新引导服务器和容器
  • 我也尝试在容器( Alpine )
  • 内设置ulimit -c 0
    以上所有技巧都不适合我。人偶每次生成PDF时,总是会创建两个核心转储文件,如下所示:

    core.131 core.52
    

    核心文件如下所示:

    docker - 如何禁用Docker容器中的核心文件转储-LMLPHP

    谁能帮我禁用核心转储?非常感谢。

    最佳答案

    您必须使用--ulimit core=0选项启动容器以禁用核心转储。

    参考:https://docs.docker.com/engine/reference/commandline/run/#set-ulimits-in-container---ulimit



    在主机上,将coredump路径临时设置为/tmp进行验证:

    echo '/tmp/core.%e.%p' | sudo tee /proc/sys/kernel/core_pattern
    

    照常启动容器并强制进行核心转储:
    docker run --rm -it bash
    (inside the container)
    # yes > /dev/null &
    # kill -SIGABRT $(pidof yes)
    # ls /tmp
    (shows core.yes.<pid>)
    

    现在,使用--ulimit core=0:
    docker run --ulimit core=0 --rm -it bash
    (inside the container)
    # yes > /dev/null &
    # kill -SIGABRT $(pidof yes)
    # ls /tmp
    (No entries)
    

    关于docker - 如何禁用Docker容器中的核心文件转储,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58704192/

    10-12 22:15