Upgrade DevStack to PHP 8.5 and modernize infrastructure - #19
Open
f3l1x wants to merge 2 commits into
Open
Conversation
CI has been red on every run since stretch was archived: the images build on
dockette/stretch, whose apt sources 404 because Debian stretch is EOL and was
removed from deb.debian.org and security.debian.org.
Rather than pin the dead suite to archive.debian.org, move the whole stack to
current upstream versions.
- Base all images on dockette/debian:bookworm.
- Replace the php/{5.6,5.6-fpm,7.1,7.1-fpm,7.2,7.2-fpm} matrix with
php/8.5 and php/8.5-fpm; sury publishes no PHP 5.6/7.x for bookworm.
- Install Node.js 24.19.0 (latest LTS) from the official nodejs.org tarball;
the nodesource setup_10.x script and its stretch distribution are gone.
Node 18+ also needs glibc 2.28, which stretch cannot provide.
- Drop PHP extensions that no longer exist for PHP 8.x: apc (superseded by
apcu), geoip, mcrypt, imap (unbundled in 8.4), xmlrpc (removed from core in
8.0) and imagick; mongo becomes mongodb.
- Install the Blackfire probe from packages.blackfire.io instead of hardcoded
binary URLs, and drop the stray override that pointed the agent socket at a
public IP instead of BLACKFIRE_AGENT.
- Drop hirak/prestissimo, a Composer 1-only plugin that breaks Composer 2, and
set COMPOSER_HOME so the global bin path stays /root/.composer.
- Rewrite devstack.ini for Xdebug 3 (mode/start_with_request/client_host);
the Xdebug 2 remote_* keys were silently ignored.
- Bump MariaDB 10.1 to 12.3 and PostgreSQL 9.6 to 18, drop the obsolete
compose version key, and rename service php72 to php85 (vhost local.dev7
becomes local.dev8).
- Update actions/checkout to v7 and docker/setup-buildx-action to v4, clearing
the Node 20 deprecation warnings.
- Refresh README and AGENTS.md for the new versions and service names.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QNkYkDFukA7kdCTsnWLrCD
The bookworm base has no /etc/ssh, unlike the stretch base, so appending the
IdentityFile line to /etc/ssh/ssh_config failed the PHP build:
/bin/sh: 1: cannot create /etc/ssh/ssh_config: Directory nonexistent
Install openssh-client, which ships that file. The compose file mounts the SSH
agent socket into the nodejs container too, so add it there as well.
Also restore php8.5-ssh2, dropped from the extension list by mistake during the
migration; unlike the removed extensions it is still published for PHP 8.x.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QNkYkDFukA7kdCTsnWLrCD
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR modernizes the Dockette DevStack by upgrading to PHP 8.5 as the primary PHP version, updating the base Docker images to Debian Bookworm, and removing support for legacy PHP versions (5.6 and 7.1-7.2).
Key Changes
PHP Version Upgrade: Replaced PHP 7.2 with PHP 8.5 as the primary runtime
PHP_VERSIONvariablexdebug.mode,xdebug.client_host, etc. instead of deprecatedxdebug.remote_*settings)php-mongo→php-mongodb)Base Image Modernization:
dockette/stretchtodockette/debian:bookwormacross all servicesRemoved Legacy PHP Versions:
Dependency Updates:
Package Management Improvements:
aptcommands toapt-get/etc/apt/keyrings(modern Debian standard)Configuration Updates:
Build System: Updated Makefile to build php85-fpm instead of php72-fpm
Implementation Details
COMPOSER_HOME,COMPOSER_ALLOW_SUPERUSER)ln -stoln -sffor safer idempotencyhttps://claude.ai/code/session_01QNkYkDFukA7kdCTsnWLrCD