Мой PHP-контейнер запускает кукловод для создания PDF. Создавая документ PDF, он также создает два файла дампа памяти внутри моего контейнера. Я не уверен, откуда они на самом деле.
Хост / сервер - CentOS 7.
Я проверил следующее:
- Нет журнала ошибок приложения, Browsershot / puppeteer работает без ошибок.
- Журнал ошибок (например, segfault) не найден в
/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
внутри контейнера (альпийский)
Ни одна из вышеперечисленных уловок не работает для меня. Каждый раз, когда кукловод генерирует PDF, он всегда создает два файла дампа ядра, как показано ниже:
core.131 core.52
Основные файлы выглядят так:
Может кто-нибудь поможет мне отключить дампы ядра? Большое спасибо.
Ответы:
Вы должны запустить свой контейнер с возможностью
--ulimit core=0
отключить coredumps.Ссылка: https://docs.docker.com/engine/reference/commandline/run/#set-ulimits-in-container---ulimit
пример
На хосте временно установите путь coredump
/tmp
для проверки:Запустите контейнер как обычно и форсируйте дамп ядра:
Теперь с
--ulimit core=0
:источник
entrypoint.sh
в ту же команду, которая запускает приложение phpу меня тоже есть эта проблема на сервисе docker swarm, и --ulimit core = 0 не работает в сервисе swarm. Я использовал команду ниже и работал для меня в сервисе docker swarm!
sysctl -w kernel.core_pattern = / dev / null
источник