Skip to content

php:8.2-fpm (bullseye) docker (swarm) no log #1411

@peterschristoph

Description

@peterschristoph

hi, after some time i am convinced that there is a bug in php:8.2-fpm image or in connection with docker swarm or in docker?

When using the php:8.2-fpm image, this repo writes a docker config which redirects the access and error log to the proc self fd 2. Unfortunately all logs that should end up in the docker logs are lost.

Environment

  • Docker version 24.0.2, build cb74dfc
  • Dockerhost: Ubuntu 22 LTS
  • Image: php:8.2-fpm

further information

# cat local/etc/php-fpm.d/docker.conf
[global]
error_log = /proc/self/fd/2

; https://github.com/docker-library/php/pull/725#issuecomment-443540114
log_limit = 8192

[www]
; php-fpm closes STDOUT on startup, so sending logs to /proc/self/fd/1 does not work.
; https://bugs.php.net/bug.php?id=73886
access.log = /proc/self/fd/2

clear_env = no

; Ensure worker stdout and stderr are sent to the main error log.
catch_workers_output = yes
decorate_workers_output = no

Inside docker container:

# ls -la /proc/self/fd/2
lrwx------ 1 root root 64 May 30 09:43 /proc/self/fd/2 -> /dev/pts/0
# ls -la /proc/self/fd/1
lrwx------ 1 root root 64 May 30 09:44 /proc/self/fd/1 -> /dev/pts/0
# ls -la /proc/1/fd/2
l-wx------ 1 root root 64 May 30 01:33 /proc/1/fd/2 -> 'pipe:[1118282]'
# ls -la /dev/stderr
lrwxrwxrwx 1 root root 15 May 30 01:33 /dev/stderr -> /proc/self/fd/2
  • /dev/stderr --> PARTLY WORKING (only from php, not in bash/sh)
  • /proc/self/fd/2 --> NOT WORKING
  • /proc/1/fd/2 --> WORKING
  • some file in mount --> WORKING

I'm not the only one with this behavior, for example: #878 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions