Tengo php-fpm en un contenedor docker y en el Dockerfile
Edito el archivo de configuración de fpm (/etc/php5/fpm/pool.d/www.conf
para configurar los registros de acceso para ir a /var/log/fpm-access.log
y registros de errores a los que ir /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
Esto funciona bien : puedo obtener un shell en el contenedor para ver los registros. Pero... no es la mejor práctica.
El problema es cuando trato de usar el recopilador de registros de docker - Necesito php-fpm para iniciar sesión en stdout o stderr para que docker pueda capturarlos y proporcionarlos al docker logs
comando.
Traté de hacer esto en el Dockerfile
(que es una idea que copié de la imagen oficial de 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
Esto no funciona : no se ven registros de acceso desde docker logs
- Estoy tratando de averiguar por qué? ¿Alguien más que use fpm en docker logró que el registro funcionara en el recopilador de registros de docker?