Como obter php-fpm para logar no stdout / stderr ao executar em um contêiner docker

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?

Ok, a maneira de fazer isso é enviar o erro e os logs de Acesso para o seguinte endereço:

/proc/self/fd/2

Em php5-fpm.log adicionar:

access.log = /proc/self/fd/2error_log = /proc/self/fd/2

NOTAR: access.log está correto, encontre nesta página https://www.php.net/manual/en/install.fpm.configuration.php

Observe que o assado em fpm config para a versão mais recente do oficial PHP fpm docker imagem grava nos fluxos padrão:

error_log = /proc/self/fd/2...; if we send this to /proc/self/fd/1, it never appearsaccess.log = /proc/self/fd/2

Os logs PHP-FPM só aparecerão no STDERR-para que você possa fazer um link simbólico fpm.log para /dev/stderr Se você quiser.

ln -sf /dev/stderr /var/log/fpm-access.logln -sf /dev/stderr /var/log/fpm-error.log