У меня есть php-fpm в контейнере docker и в Dockerfile Я редактирую конфигурационный файл fpm (/etc/php5/fpm/pool.d/www.conf), чтобы настроить журналы доступа для перехода к /var/log/fpm-access.log и журналы ошибок, чтобы перейти к /var/log/fpm-php.www.log:
# Do some php-fpm config# Redirect worker stdout and stderr into main error log# Activate the fpm access log# Enable display errors# Enable the error logRUN sed -i '/^;catch_workers_output/ccatch_workers_output = yes' /etc/php5/fpm/pool.d/www.conf && \ sed -i '/^;access.log/caccess.log = /var/log/fpm-access.log' /etc/php5/fpm/pool.d/www.conf && \ sed -i '/^;php_flag\[display_errors\]/cphp_flag[display_errors] = off' /etc/php5/fpm/pool.d/www.conf && \ sed -i '/^;php_admin_value\[error_log\]/cphp_admin_value[error_log] = /var/log/fpm-php.www.log' /etc/php5/fpm/pool.d/www.conf && \ sed -i '/^;php_admin_flag\[log_errors\]/cphp_admin_flag[log_errors] = on' /etc/php5/fpm/pool.d/www.confЭто работает нормально - я могу запустить оболочку в контейнер, чтобы просмотреть журналы. Но... это не лучшая практика.
Проблема в том, что когда я пытаюсь использовать сборщик журналов docker - Мне нужен php-fpm для входа в stdout или stderr, чтобы docker мог захватить их и предоставить в docker logs команда.
Я пытался сделать это в Dockerfile (это идея, которую я скопировал из официальное изображение nginx docker):
# Redirect fpm logs to stdout and stderr so they are forwarded to the docker log collectorRUN ln -sf /dev/stdout /var/log/fpm-access.log && \ ln -sf /dev/stderr /var/log/fpm-php.www.logЭто не работает - журналы доступа не отображаются из docker logs - Я пытаюсь понять, почему? Удалось ли кому-нибудь еще, использующему fpm в docker, заставить работать сборщик журналов docker?