Skip to content

Add php-lol PHP 8.5 image - #374

Merged
bdossantos merged 2 commits into
masterfrom
copilot/create-php-lol-85-image
Sep 18, 2026
Merged

bdossantos merged 2 commits into
masterfrom
copilot/create-php-lol-85-image

Conversation

Copilot AI commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Adds a php-lol variant for PHP 8.5. Debian trixie was requested as the preferred base but is not viable: imap requires libc-client-dev (UW-IMAP) and libpcre3-dev, both removed from trixie. The image therefore uses the requested bookworm fallback.

Base image

  • New dockerfiles/php-lol/Dockerfile.8.5 on php:8.5.10-fpm-bookworm (pinned by digest), mirroring the 8.4 layout.

PECL extensions built from source

  • Replaced pickle with per-extension builds from pinned upstream GitHub tags (igbinary, msgpack, apcu, amqp, imap, memcached, redis, mailparse, zstd). pickle bundles Composer 1.x, which fatals on PHP 8.5:

    Fatal error: Uncaught TypeError: stream_context_create():
    Argument #2 ($params) ... StreamContextFactory::initialize()
    
  • Bumped for 8.5 source compatibility (older tags reference the removed php_smart_string.h):

    • igbinary → 3.2.17RC1 (only 8.5-compatible tag currently published)
    • mailparse → 3.2.0
  • zstd built with its bundled libzstd submodule (--recurse-submodules, no --with-libzstd).

  • imap is now explicitly listed in docker-php-ext-enable (pickle previously handled enablement).

Bundled/core extensions in 8.5

  • Dropped iconv, posix, simplexml, xmlreader, and opcache from the install list — these are compiled in / enabled by default in the 8.5 base image, and re-installing them produces an empty modules/ and fails the build.

Wiring

  • Added php-lol85 service to docker-compose.ci.yml.
  • Added 8.5 to the php-lol entry in README.md.

Notes for review

  • IGBINARY_VERSION=3.2.17RC1 is a release candidate; worth pinning to a stable 3.2.17 once available.

Comment thread dockerfiles/php-lol/Dockerfile.8.5 Outdated
Copilot AI requested a review from bdossantos September 18, 2026 09:42
@bdossantos
bdossantos marked this pull request as ready for review September 18, 2026 10:02
Copilot AI lite review requested due to automatic review settings September 18, 2026 10:02

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Unresolved reproducibility, security, CI validation, and root-runtime issues remain.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Adds a PHP 8.5 php-lol image using the Bookworm fallback, source-built extensions, CI wiring, and documentation updates.

Changes:

  • Adds the PHP 8.5.10 Dockerfile and compatible extension builds.
  • Registers php-lol85 in CI.
  • Documents PHP 8.5 support in the README.
File summaries
File Review summary
README.md Documents PHP 8.5 support.
dockerfiles/php-lol/Dockerfile.8.5 Adds the PHP 8.5 image. Findings: six moderate issues (3 votes each) involving unpinned Debian packages, mutable LZ4 and Imagick sources, mutable Composer image, and root runtime; one critical issue (3 votes) involving plaintext Nginx downloads.
docker-compose.ci.yml Adds the PHP 8.5 CI service. Finding: moderate (3 votes) due to nondeterministic reuse of the shared image tag during parallel builds.
Review details
  • Files reviewed: 3/3 changed files
  • Comments generated: 7
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

&& make install \
&& ldconfig \
&& mkdir -p /usr/src/nginx \
&& curl -sSL "http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz" \
Comment thread docker-compose.ci.yml
build:
context: dockerfiles/php-lol
dockerfile: Dockerfile.8.5
image: bdossantos/php-lol
Comment on lines +54 to +58
&& apt-get install -y --no-install-recommends \
acl \
bash \
geoip-database \
git \
Comment on lines +151 to +156
&& curl -L -o /tmp/lz4.tar.gz https://github.com/kjdev/php-ext-lz4/archive/refs/heads/master.tar.gz \
&& tar -xzf /tmp/lz4.tar.gz -C /usr/src \
&& mv /usr/src/php-ext-lz4-master /usr/src/php-ext-lz4 \
&& pushd /usr/src/php-ext-lz4 \
&& phpize \
&& ./configure --with-lz4-includedir=/usr \
tidy \
zip \
# Temporarily building for PHP 8.0: https://github.com/Imagick/imagick/issues/358
&& git clone --depth 1 https://github.com/Imagick/imagick /usr/src/imagick \
VOLUME /etc/nginx/conf.d

# hadolint ignore=DL3022
COPY --from=composer:2.10 /usr/bin/composer /usr/bin/composer

EXPOSE 80/tcp 443/tcp

ENTRYPOINT ["/entrypoint.sh"]
@bdossantos
bdossantos merged commit 93c9e5b into master Sep 18, 2026
5 of 16 checks passed
@bdossantos
bdossantos deleted the copilot/create-php-lol-85-image branch September 18, 2026 10:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants