#linux #docker #logging #stdout #docker-logs
#linux #docker #ведение журнала #стандартный вывод #docker-logs
Вопрос:
Я пытаюсь настроить свои ошибки php для вывода в журналы docker. Вся документация, которую я прочитал, указывает, что журналы docker привязаны к контейнерам stdout и stderr, которые поступают из /proc/self/fd/1 и /proc/self/fd/2 . Я создал символическую ссылку из моего файла журнала ошибок php /var/log/php_errors.log в /proc/self/fd/1 с помощью команды:
ln -sf /proc/self/fd/1 /var/log/php_errors.log
После связывания журнала ошибок я протестировал его функциональность, запустив этот php-скрипт:
<?php
error_log("This is a custom error message constructed to test the php error logging functionality of this site.n");
?>
Вывод отображает сообщение об ошибке на консоль, поэтому я вижу, что регистрация ошибок php теперь перенаправляется на стандартный вывод в контейнере, но при запуске docker logs -f <containername>
я никогда не вижу сообщения об ошибке в журналах. Также эхо-сигнал изнутри контейнера также не отображается в журналах, что сбивает с толку, потому что, насколько я понимаю, команда echo — это стандартный вывод.
Дальнейшее чтение сообщило мне, что в журналах docker будут отображаться только выходные данные из pid 1, что может быть проблемой. Если это так, как я могу правильно настроить ведение журнала ошибок php для отображения в журналах docker вне контейнера.
Также я проверил, что использую драйвер docker json-файла по умолчанию, и попробовал это как в своей локальной среде, так и на веб-сервере.