Upgrade base image to devcontainers/php:8.4 - #59
Open
kurowski wants to merge 1 commit into
Open
Conversation
Pantheon runs PHP 8.4 (UCDCW-158, UP-1921), but this image still built on devcontainers/php:8.3. That gap is a real liability: local dev and CI both run this image, and Pantheon does not process php_version changes on multidevs, so neither local dev, nor CI, nor a PR environment could ever surface a PHP 8.4 deprecation. That is how the myeap2 8.4 deprecations reached TEST unnoticed, and why UCDCW-158 had to be verified out-of-band by running php -l inside a throwaway php:8.4-cli container. mcr.microsoft.com/devcontainers/php:8.4 ships PHP 8.4.23 -- the same patch release Pantheon's 8.4 runtime is on -- and is built on the same Debian 13 (trixie) base as the 8.3 tag, so the apt package set and every docker-php-ext-install / pecl step below are unaffected. Xdebug is included in the base image as before. Nothing else in the repo referenced the PHP version. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Swaps the base image from
mcr.microsoft.com/devcontainers/php:8.3to:8.4. That is the only line that changes — nothing else in the repo referenced the PHP version.Why
Pantheon runs PHP 8.4 (UCDCW-158 for ucdcweb2, UP-1921 for myeap2), but this image still built on 8.3. That gap is a real liability rather than cosmetic drift:
php_versionchanges on multidevs, so PR environments stay on the old version too.The result is that no part of the pipeline could surface a PHP 8.4 deprecation — which is exactly how the myeap2 8.4 deprecations reached TEST unnoticed. UCDCW-158 had to be verified out-of-band by running
php -lacross ~22.5k files inside a throwawayphp:8.4-clicontainer, because there was no environment available that actually ran 8.4.Why this should be a low-risk swap
8.4.23 is the same patch release Pantheon's 8.4 runtime is on (confirmed via
drush statusagainst Pantheon dev). Same Debian release means theapt-get installlist is unaffected, and thedocker-php-ext-install/pecl installsteps (mysqli, pdo_mysql, intl, gd, redis, zip) all resolve against the base image's PHP rather than a pinned version.Testing
mcr.microsoft.com/devcontainers/php:8.4exists and reports PHP 8.4.23 on Debian 13 trixie with Xdebug loaded.linux/amd64build of this Dockerfile was run to validate the extension and apt steps against the new base.linux/amd64,linux/arm64and publishes apr-<N>tag; ucdcweb2's.devcontainer/docker-compose.ymlwill be pointed at that tag for hands-on local testing on 8.4 before this merges.Rollout note
Because
docker-compose.ymlin the consuming repos tracks:main, merging this changes the PHP version for every project using this image — ucdcweb2 and myeap2 both. Both are on 8.4 on Pantheon, so this brings local dev into line rather than ahead. Worth a heads-up to the team that a container rebuild is needed after merge.🤖 Generated with Claude Code