forked from RoushTech/docker
Build php:8.5 from Alpine 3.24 (opcache/composer OOM fix) #48
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/php85-bump-alpine-324"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
git.grey.ooo/Grey.ooo/Someones.Computer#990 root-caused an intermittent CI
composer OOM to an opcache miscompilation in PHP 8.5.6 (Alpine), tripped by
this image's non-default
opcache.enable_cli=On. #1024 there measured 8.5.9clean (0/15 failures) against 4-10/15 on 8.5.6, and asks for either the PHP
bump or turning off
opcache.enable_cli.This takes the PHP-bump path: Alpine 3.24's
php85package is already at8.5.9-r0 (3.23 is still 8.5.6-r0), so
php-85-basenow builds from a newalpine-24-basestage instead ofalpine-23-base. Nothing else in thefamily (Node, FrankenPHP, .Net, Java) changes base.
What changed
Alpine.Dockerfile: addedalpine-24-base/builder-24-basestages,mirroring the existing
alpine-23-baseblock exactly (Alpine 3.24 isalready the current stable release).
PHP.Dockerfile:php-85-basenowFROM ./Alpine.Dockerfile#alpine-24-baseinstead of
alpine-23-base.NGINX_VERSIONbumped 1.28 → 1.30 to matchwhat Alpine 3.24's
nginxpackage actually ships (it's a validation label,not a pin — see
fs/php-nginx/etc/validate.d/nginx.sh).test-versions-assertions.yml/test.yml: addedbase-alpine-24-assertionsalongside the existing per-version assertions.
README.md: updated the PHP 8.5 / PHP+Node 8.5 / Magento 8.5 table rows andthe image family tree diagram.
Deliberately not touched:
docker-bake.hcl'sbase-alpinetarget andmirror-baseimages.yml. Alpine 3.24 isn't in the mirror workflow's imagematrix yet, so publishing a
matthewbaggett/base:24/builder:24throughthe mirrored
contextsmap would fail until that's added separately — areasonable follow-up, but a different change.
alpine-24-baseis deliberatelyinternal-only for now, consumed solely by
php-85-base, which already pullsAlpine directly rather than through the mirror context.
Verified locally
docker build --target php-85-base -f PHP.Dockerfile .and the same forphp-85-node-base: both build clean and/usr/local/bin/validatepassesevery check, reporting
PHP 8.5.9 (cli) ... with Zend OPcache v8.5.9.Follow-up (not automatic — sequencing for whoever picks this up)
Docker image FROM references are baked in at build time, not re-resolved on
pull, so this alone does not fix anyone downstream:
matthewbaggett/php:8.5built from Alpine 3.24.actions/Github-Actions-Runner(no scheduled rebuild — push orworkflow_dispatchonly) needs its own build run after step 1, soghcr.io/matthewbaggett/act-runner:php8.5actually rebuilds FROM the newbase rather than reusing its already-built layers.
ci.ymlrevert (COMPOSER_NO_BLOCKING) safe to land — otherwise CI wouldstill be running the old, buggy 8.5.6 image under the hood.
Unrelated to the php85/Alpine bump on this branch, but blocking its CI run: dlcdn.apache.org only serves the current Tomcat release, and 9.0.117 was superseded (recurring pattern here per c59ba11/f86420a/cfef6af). Only the active java-tomcat-{21,17,11} pins move; java-tomcat-8's 9.0.111 (also 404, but that target is deprecated and unwired from test.yml's aggregator) and java-tomcat-7's 8.5.83 (served from archive.apache.org, still resolves) are untouched.Run 339 (job 69841) failed on java-11-tomcat-assertions with wget exit 8 — dlcdn.apache.org 404s on TOMCAT_VERSION=9.0.117 (superseded by 9.0.121, same recurring pattern as c59ba11/f86420a/cfef6af). Unrelated to this PR's php85/Alpine change, but it's the shared 'Run container tests' job so it blocked mine too. Bumped the three active java-tomcat-9 pins (21/17/11) to 9.0.121 in
64b52a6; left java-tomcat-8's 9.0.111 alone since that target is deprecated and already unwired from test.yml's aggregator, and java-tomcat-7's 8.5.83 still resolves via archive.apache.org.Green: https://git.grey.ooo/Grey.ooo/docker/actions/runs/341 (Run container tests + Build both succeeded, full multi-arch matrix). Merging.
WIP: Build php:8.5 from Alpine 3.24 (opcache/composer OOM fix)to Build php:8.5 from Alpine 3.24 (opcache/composer OOM fix)