PrivateBin/docker-nginx-fpm-alpine

php-fpm81: No such file or directory

pinkfloydFR opened this issue · 5 comments

Hi,

When using "image: privatebin/nginx-fpm-alpine:stable"

The log is spammed with :

"execlineb: fatal: unable to exec /usr/sbin/php-fpm81: No such file or directory"

tested with stable and latest tag, same errors.

Thanks !

elrido commented

We switched to PHP 8.2 in May and this included changing the exec call to the new binary location. So the error would make sense if you are running the current images, which ship /usr/sbin/php-fpm82 instead. But the script that produces this message, /etc/s6/services/php-fpm81/run did get renamed and updated at the same time. Do you by any chance mount a configuration volume over the images' /etc directory? Can you attach into the container (use /bin/ash instead of bash) and have a look at how the running images /etc/s6/services directory looks like and where the call to the 81 binary might come from?

Here are my mounted volume :
volumes:

  • $PWD/data:/srv/data
  • $PWD/tmp:/tmp
  • $PWD/nginx_tmp:/var/lib/nginx/tmp
  • $PWD/run:/run

in the services directory i have nginx and php-fpm82 folder.

the call for fpm81 appear each second.

i will try to delete all my volume folder and start the docker from scratch to see if i got any change...

thanks for helping !

cleared all folder, recreated and chown as nobody seem to correct the problem !

Thanks !

AFAIK s6 copies the files from /etc/s6/services into /run before executing them. If /run (and /tmp) aren't tmpfs filesystems or ephemeral volumes, they will persist restarts and you will have old versions of those service files hanging around. In order to prevent this re-occurring with future updates, consider switching to tmpfs volumes:

If using podman or docker, you can attach those as tmpfs using the arguments: --tmpfs /run --tmpfs /tmp or --mount type=tmpfs,destination=/run --mount type=tmpfs,destination=/tmp.

For Kubernetes, check out the volumes section in the sample deployment in the README.md document.

For docker compose, I think you can append those as a tmpfs section to your yaml file:

[...]
    tmpfs:
      - /run
      - /tmp

Thanks for the tips, and the great work !