Repository navigation
Move the Docker image to PHP 8.5.12 (BITS-384) - #296
Merged
Merged
Conversation
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
PhilReinking
commented
Oct 22, 2026
PhilReinking
left a comment
Contributor
Author
There was a problem hiding this comment.
Looks good at 34b770f. I built the image from this head (on arm64, so that build works too) and checked it by hand.
php -v: PHP 8.5.12.mirror.gcr.io/trafex/php-nginx:3.12.0resolves.php -m,ghcr.io/deck9/input:main(8.3.9) vs new: nothing lost, onlylexboranduriadded.redisloads, fromphp85-pecl-redis6.3.0.- No
php83left in the image or inscripts/./usr/bin/phppoints tophp85, supervisor runsphp-fpm85, our ini is read from/etc/php85/conf.d(post_max_size 9M, upload_max_filesize 8M). - With MariaDB 11: 49 migrations ran, nginx, php-fpm, queue worker and scheduler started,
/login302 to/register, which returns 200. - The changelog line and its upgrade step are correct.
One thing to fix in a follow-up (not in this diff): config/database.php:62 uses PDO::MYSQL_ATTR_SSL_CA, which PHP 8.5 marks as deprecated. Every artisan call that loads the config without the cache prints PHP Deprecated: Constant PDO::MYSQL_ATTR_SSL_CA is deprecated since 8.5, for example optimize:clear in start-container.sh on each start, so self-hosters see it in their logs. The Laravel 13 skeleton uses (PHP_VERSION_ID >= 80500 ? \Pdo\Mysql::ATTR_SSL_CA : \PDO::MYSQL_ATTR_SSL_CA).
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.
What changed
The Docker image moves from
trafex/php-nginx:3.6.0(PHP 8.3.9, Alpine 3.20, end of life) to3.12.0(PHP 8.5.12, Alpine 3.24). PHP 8.5.12 has the fixes for two remote code execution bugs (CVE-2026-109618, CVE-2026-109619). There is no trafex tag with a fixed 8.3. CI now tests on PHP 8.5. Thephp83-*packages arephp85-*; Redis isphp85-pecl-redis. The php.ini goes to/etc/php85/conf.d/. Changelog line added.Tested
Built the image.
php -vprints 8.5.12.php -mold (ghcr.io/deck9/input:main) against new: nothing lost. Two modules are new, both part of PHP 8.5:lexboranduri.Started the image with a throwaway MariaDB 11: all migrations ran, nginx, php-fpm, queue worker and scheduler run.
/loginon a fresh install answers 302 to/register(no users yet), and/registeranswers 200. The custom php.ini applies (upload_max_filesize8M).Not tested
The PHP tests on PHP 8.5 run in CI only. I did not run them by hand. Nothing in the image was tried with S3 or Redis.
After merge
Self-hosters who mount their own php.ini must use
/etc/php85/conf.d/(the old path was/etc/php83/). The PM releases v2.2.1 with an image tag.Part of BITS-384
🤖 Generated with Claude Code