Eu tenho php-fpm em um contêiner docker e no Dockerfile
Eu edito o arquivo de configuração fpm (/etc/php5/fpm/pool.d/www.conf
) para configurar logs de Acesso para ir para /var/log/fpm-access.log
e logs de erro para ir para /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
Isso funciona bem-posso obter um shell no contêiner para ver os logs. Mas... não é uma boa prática.
O problema é quando tento usar o Docker Log collector - Preciso do php-fpm para fazer logon no stdout ou stderr para que o docker possa capturá-los e fornecê-los ao docker logs
comando.
Eu tentei fazer isso no Dockerfile
(que é uma ideia que copiei do imagem oficial do docker nginx):
# 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
Isso não está funcionando - nenhum registro de acesso é visto de docker logs
- Estou a tentar descobrir porquê? Alguém mais que usa fpm no docker conseguiu fazer o registro funcionar para o coletor de log do docker?