Page MenuHomeDevCentral

Upgrade PHP 7.4 base Docker image to recent Debian version
Open, HighPublic


Plan is to attack first the base images, then the dependents

Base images

nginx-php7-fpm: ✅
PHP-CLI: still to do

PHP web applications

Notifications Center
Auth GroveWe need to upgrade setup-nodesource-deb. Then, install gulp and laravel-elixir

PHP CLI applications


Event Timeline

dereckson triaged this task as High priority.Feb 12 2022, 04:15
dereckson created this task.

This blocks T1547, but also is needed to prepare PHP 8.1 repocopy.

TODO: novolume/ is still in Jessie, apply rDPHPVIIFPM630b49d9b604 and rDPHPVIIFPMf4465d1a9419 changes here too.

Done for the base image (excepted the TODO noted above), we need to test Notifications Center, Auth Grove, etc. against 7.4 deprecations, and if applicable blocks them to 7.2 or 7.3.

Done. Last step is to ensure applications dependent of this image works correctly under Buster and Bullseye.

On Debian Bullseye, /etc/service is a symlink to /etc/runit/runsvdir/current.

As such:

  • Docker legacy build mode is happy to replace the symlink by a golder
  • BuildKit fails on that operation

BuildKit error

10 ERROR: cannot copy to non-directory: /var/lib/docker/overlay2/u07vvjqbe3xj2absqqzyjue5j/merged/etc/service

I guess BuildKit doesn't check the existence of a file instead of a dir and tries directly to copy the subdirectoryfiles.


  • Add rm /etc/service in the build previous step
  • Move files/etc/service to files/etc/runit/runsvdir/current
  • Move files/etc/service to files/var/service, the runit default path, and be independent of Debian package maintainer defaults.
  • Fix it in moby/BuildKit upstream
  • Always build images ourselves without Docker Hub

I'm more inclined to move to /var/service, especially as I wanted to do that before this issue, and to report the issue upstream.

Solution implemented in D2525: we use /var/service.

Issue reported upstream at