Skip to content

feat: php 84 container#74

Open
barkerl wants to merge 4 commits intomainfrom
feat/php-84-container
Open

feat: php 84 container#74
barkerl wants to merge 4 commits intomainfrom
feat/php-84-container

Conversation

@barkerl
Copy link
Copy Markdown
Contributor

@barkerl barkerl commented Apr 2, 2026

Description

This add php-fpm and php-cli 8.4 docker images to the dvsa-docker-images repo. There has been the minimum optimisations done to facilitate easy testing however i have enabled opcache (can easily be taken off).

I have also added these two new images to the existing workflows.

Related issue: JIRA_TICKET_NUMBER

Before submitting (or marking as "ready for review")

  • Does the pull request title follow the conventional commit specification?
  • Have you performed a self-review of the code
  • Have you have added tests that prove the fix or feature is effective and working
  • Did you make sure to update any documentation relating to this change?

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds PHP 8.4 base Docker images (FPM+Nginx and CLI) to the existing dvsa-docker-images structure, and wires them into CI/CD so they get built/published alongside the other language/version images.

Changes:

  • Introduce new php/8.4/fpm-nginx image (nginx + php-fpm via supervisord) with custom nginx/php-fpm/php.ini configs.
  • Introduce new php/8.4/cli image with a custom php.ini.
  • Update CI/CD workflow matrices to include the new PHP 8.4 images.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
php/8.4/fpm-nginx/Dockerfile Defines new PHP 8.4 FPM+Nginx image build (installs nginx/supervisor, copies configs).
php/8.4/fpm-nginx/nginx.conf Adds nginx base config for the new image.
php/8.4/fpm-nginx/php-fpm.conf Adds php-fpm pool/global config for the new image.
php/8.4/fpm-nginx/php.ini Adds PHP ini overrides (notably opcache/JIT settings).
php/8.4/fpm-nginx/supervisord.conf Adds supervisord base config for running multiple processes.
php/8.4/fpm-nginx/supervisord/nginx.conf Adds supervisord program entry for nginx.
php/8.4/fpm-nginx/supervisord/php-fpm.conf Adds supervisord program entry for php-fpm.
php/8.4/cli/Dockerfile Defines new PHP 8.4 CLI image build and copies ini overrides.
php/8.4/cli/php.ini Adds PHP ini overrides for CLI (notably opcache/JIT settings).
.github/workflows/ci.yaml Includes the two new PHP 8.4 images in the CI build matrix.
.github/workflows/cd.yaml Includes the two new PHP 8.4 images in the CD build/publish matrix.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread php/8.4/fpm-nginx/php.ini Outdated
Comment thread php/8.4/cli/php.ini Outdated
barkerl and others added 2 commits April 2, 2026 16:47
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@barkerl barkerl changed the title Feat/php 84 container feat: php 84 container Apr 2, 2026
Copy link
Copy Markdown

@fibble fibble left a comment

Choose a reason for hiding this comment

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

Looks good, the opcache.jit stuff is the only bit i can see might cause issues, but it should be ok and is best left like this if it does work 👍

Comment thread php/8.4/fpm-nginx/php.ini
expose_php = Off

; Enable the engine and JIT by default for performance optimisation. You can disable this if it causes issues.
zend_extension=opcache
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.

I believe this is included by default in /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini.

Comment thread php/8.4/cli/php.ini
; https://php.net/display-errors
display_errors = stderr

; More explicit JIT toggles in PHP 8.4. These may need optimization for production use, but they are enabled by default for now (disable them only if they cause issues).
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.

I would potentially not do any of this opcache stuff here and instead delegate it to the downstream applications because this file is loaded into ${PHP_INI_DIR}/conf.d/zzz-dvsa-base.ini which I can see causing confusion at some point.

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.

5 participants