From 7d961644bba070a4ef7a44f110622ec2689fd05f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Tvrd=C3=ADk?= Date: Wed, 26 Nov 2025 12:28:58 +0100 Subject: [PATCH 1/3] Add PHP 8.5 support --- .github/workflows/workflow.yml | 4 +- CHANGELOG.md | 7 + Makefile | 10 +- README.md | 17 +- docker-bake.hcl | 258 ++++++++++++++++++++++++++++++- extensions/8.5/amqp | 1 + extensions/8.5/apcu | 1 + extensions/8.5/ast | 1 + extensions/8.5/bcmath | 1 + extensions/8.5/bz2 | 1 + extensions/8.5/dba | 1 + extensions/8.5/disable_all.sh | 1 + extensions/8.5/docker-install.sh | 1 + extensions/8.5/ds | 1 + extensions/8.5/enchant | 1 + extensions/8.5/excimer | 1 + extensions/8.5/ffi | 1 + extensions/8.5/gd | 1 + extensions/8.5/gettext | 1 + extensions/8.5/gmp | 1 + extensions/8.5/grpc | 1 + extensions/8.5/igbinary | 1 + extensions/8.5/imagick | 1 + extensions/8.5/imap | 1 + extensions/8.5/install_all.sh | 1 + extensions/8.5/intl | 1 + extensions/8.5/ldap | 1 + extensions/8.5/mailparse | 1 + extensions/8.5/memcached | 1 + extensions/8.5/mongodb | 1 + extensions/8.5/msgpack | 1 + extensions/8.5/mysqli | 1 + extensions/8.5/pcov | 1 + extensions/8.5/pdo_dblib | 1 + extensions/8.5/pdo_mysql | 1 + extensions/8.5/pdo_pgsql | 1 + extensions/8.5/pdo_sqlite | 1 + extensions/8.5/pgsql | 1 + extensions/8.5/pspell | 1 + extensions/8.5/rdkafka | 1 + extensions/8.5/redis | 1 + extensions/8.5/snmp | 1 + extensions/8.5/soap | 1 + extensions/8.5/sqlite3 | 1 + extensions/8.5/swoole | 1 + extensions/8.5/tidy | 1 + extensions/8.5/uploadprogress | 1 + extensions/8.5/uuid | 1 + extensions/8.5/xdebug | 1 + extensions/8.5/xmlrpc | 1 + extensions/8.5/yaml | 1 + extensions/8.5/zip | 1 + tests-suite/php-blackfire.sh | 4 +- utils/README.blueprint.md | 4 +- utils/docker-bake.blueprint.hcl | 2 +- 55 files changed, 342 insertions(+), 11 deletions(-) create mode 120000 extensions/8.5/amqp create mode 120000 extensions/8.5/apcu create mode 120000 extensions/8.5/ast create mode 120000 extensions/8.5/bcmath create mode 120000 extensions/8.5/bz2 create mode 120000 extensions/8.5/dba create mode 120000 extensions/8.5/disable_all.sh create mode 120000 extensions/8.5/docker-install.sh create mode 120000 extensions/8.5/ds create mode 120000 extensions/8.5/enchant create mode 120000 extensions/8.5/excimer create mode 120000 extensions/8.5/ffi create mode 120000 extensions/8.5/gd create mode 120000 extensions/8.5/gettext create mode 120000 extensions/8.5/gmp create mode 120000 extensions/8.5/grpc create mode 120000 extensions/8.5/igbinary create mode 120000 extensions/8.5/imagick create mode 120000 extensions/8.5/imap create mode 120000 extensions/8.5/install_all.sh create mode 120000 extensions/8.5/intl create mode 120000 extensions/8.5/ldap create mode 120000 extensions/8.5/mailparse create mode 120000 extensions/8.5/memcached create mode 120000 extensions/8.5/mongodb create mode 120000 extensions/8.5/msgpack create mode 120000 extensions/8.5/mysqli create mode 120000 extensions/8.5/pcov create mode 120000 extensions/8.5/pdo_dblib create mode 120000 extensions/8.5/pdo_mysql create mode 120000 extensions/8.5/pdo_pgsql create mode 120000 extensions/8.5/pdo_sqlite create mode 120000 extensions/8.5/pgsql create mode 120000 extensions/8.5/pspell create mode 120000 extensions/8.5/rdkafka create mode 120000 extensions/8.5/redis create mode 120000 extensions/8.5/snmp create mode 120000 extensions/8.5/soap create mode 120000 extensions/8.5/sqlite3 create mode 120000 extensions/8.5/swoole create mode 120000 extensions/8.5/tidy create mode 120000 extensions/8.5/uploadprogress create mode 120000 extensions/8.5/uuid create mode 120000 extensions/8.5/xdebug create mode 120000 extensions/8.5/xmlrpc create mode 120000 extensions/8.5/yaml create mode 120000 extensions/8.5/zip diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 27f841ef..9cac7696 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -16,7 +16,7 @@ jobs: strategy: fail-fast: false matrix: - php_version: ['8.4', '8.3','8.2','8.1'] + php_version: ['8.5', '8.4', '8.3','8.2','8.1'] variant: ['apache','cli','fpm'] # builder: [ {arch: "amd64", os: "ubuntu-latest"}, {arch: "arm64", os: "macos-latest"}] builder: [ {arch: "amd64", os: "ubuntu-24.04"}, {arch: "arm64", os: "ubuntu-24.04"}] @@ -65,7 +65,7 @@ jobs: strategy: fail-fast: false matrix: - php_version: ['8.4', '8.3','8.2','8.1'] + php_version: ['8.5', '8.4', '8.3','8.2','8.1'] variant: ['apache','cli','fpm'] steps: - name: Checkout diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e5b1d36..afb1799a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log ## Version 5 +### Minor changes + +* **2025-11-26** + * Support for PHP 8.5 + +### Initial + **2025-01-27** * Upgrade the base version from Ubuntu 20.04 to 24.04 * Default blackfire version is now the version 2 (v1 is still available with BLACKFIRE_VERSION=1 at buildtime but with securities issues) diff --git a/Makefile b/Makefile index a611cabf..2f605b69 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ blueprint: ## Generate all blueprints file @if ! type orbit >/dev/null 2>&1; then echo "Missing orbit dependency, please install from https://github.com/gulien/orbit/"; exit 1; fi orbit run generate -test-latest: test-8.4 ## Test the latest build only +test-latest: test-8.5 ## Test the latest build only _test-prerequisites: blueprint docker pull ubuntu:20.04 @@ -18,10 +18,11 @@ test-legacy-quick: ## Test 7.4, 8.0 and 8.1 quickly VERSION=7.4 VARIANT=cli $(MAKE) _test-version-quick VERSION=8.0 VARIANT=cli $(MAKE) _test-version-quick VERSION=8.1 VARIANT=cli $(MAKE) _test-version-quick -test-quick: ## Test 8.2, 8.3 and 8.4 quickly +test-quick: ## Test 8.2, 8.3, 8.4 and 8.5 quickly VERSION=8.2 VARIANT=cli $(MAKE) _test-version-quick VERSION=8.3 VARIANT=cli $(MAKE) _test-version-quick VERSION=8.4 VARIANT=cli $(MAKE) _test-version-quick + VERSION=8.5 VARIANT=cli $(MAKE) _test-version-quick test-8.3: ## Test php8.3 build only VERSION=8.3 VARIANT=cli $(MAKE) _test-version @@ -38,6 +39,11 @@ test-8.1: ## Test php8.1 build only VERSION=8.1 VARIANT=apache $(MAKE) _test-version VERSION=8.1 VARIANT=fpm $(MAKE) _test-version +test-8.5: ## Test php8.5 build only + VERSION=8.5 VARIANT=cli $(MAKE) _test-version + VERSION=8.5 VARIANT=apache $(MAKE) _test-version + VERSION=8.5 VARIANT=fpm $(MAKE) _test-version + test-8.4: ## Test php8.4 build only VERSION=8.4 VARIANT=cli $(MAKE) _test-version VERSION=8.4 VARIANT=apache $(MAKE) _test-version diff --git a/README.md b/README.md index e9f09588..cc2bacf7 100644 --- a/README.md +++ b/README.md @@ -20,8 +20,23 @@ This repository contains a set of developer-friendly, general purpose PHP images -| Name | PHP version | type |variant | NodeJS version | Size +| Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------|--------|-----------------|------ +| [thecodingmachine/php:8.5-v5-apache](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.apache) | `8.5.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.5-v5-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.5-v5-apache) +| [thecodingmachine/php:8.5-v5-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.apache.node) | `8.5.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.5-v5-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.5-v5-apache-node20) +| [thecodingmachine/php:8.5-v5-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.apache.node) | `8.5.x` | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.5-v5-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.5-v5-apache-node22) +| [thecodingmachine/php:8.5-v5-apache-node24](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.apache.node) | `8.5.x` | fat | apache | `24.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.5-v5-apache-node24.svg)](https://microbadger.com/images/thecodingmachine/php:8.5-v5-apache-node24) +| [thecodingmachine/php:8.5-v5-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.fpm) | `8.5.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.5-v5-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.5-v5-fpm) +| [thecodingmachine/php:8.5-v5-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.fpm.node) | `8.5.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.5-v5-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.5-v5-fpm-node20) +| [thecodingmachine/php:8.5-v5-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.fpm.node) | `8.5.x` | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.5-v5-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.5-v5-fpm-node22) +| [thecodingmachine/php:8.5-v5-fpm-node24](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.fpm.node) | `8.5.x` | fat | fpm | `24.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.5-v5-fpm-node24.svg)](https://microbadger.com/images/thecodingmachine/php:8.5-v5-fpm-node24) +| [thecodingmachine/php:8.5-v5-cli](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.cli) | `8.5.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.5-v5-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.5-v5-cli) +| [thecodingmachine/php:8.5-v5-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.cli.node) | `8.5.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.5-v5-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.5-v5-cli-node20) +| [thecodingmachine/php:8.5-v5-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.cli.node) | `8.5.x` | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.5-v5-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.5-v5-cli-node22) +| [thecodingmachine/php:8.5-v5-cli-node24](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.cli.node) | `8.5.x` | fat | cli | `24.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.5-v5-cli-node24.svg)](https://microbadger.com/images/thecodingmachine/php:8.5-v5-cli-node24) +| [thecodingmachine/php:8.5-v5-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.slim.apache) | `8.5.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.5-v5-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.5-v5-slim-apache) +| [thecodingmachine/php:8.5-v5-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.slim.fpm) | `8.5.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.5-v5-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.5-v5-slim-fpm) +| [thecodingmachine/php:8.5-v5-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.slim.cli) | `8.5.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.5-v5-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.5-v5-slim-cli) | [thecodingmachine/php:8.4-v5-apache](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.apache) | `8.4.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v5-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v5-apache) | [thecodingmachine/php:8.4-v5-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.apache.node) | `8.4.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v5-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v5-apache-node20) | [thecodingmachine/php:8.4-v5-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v5/Dockerfile.apache.node) | `8.4.x` | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v5-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v5-apache-node22) diff --git a/docker-bake.hcl b/docker-bake.hcl index ed52f3f6..dc933092 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -2,7 +2,8 @@ group "default" { targets = [ - + + "php85", "php84", "php83", "php82", @@ -12,6 +13,27 @@ group "default" { ] } +group "php85-apache-all" { + targets = [ + "php85-slim-apache", + "php85-apache", + "php85-apache-node24","php85-apache-node22","php85-apache-node20", + ] +} +group "php85-fpm-all" { + targets = [ + "php85-slim-fpm", + "php85-fpm", + "php85-fpm-node24","php85-fpm-node22","php85-fpm-node20", + ] +} +group "php85-cli-all" { + targets = [ + "php85-slim-cli", + "php85-cli", + "php85-cli-node24","php85-cli-node22","php85-cli-node20", + ] +} group "php84-apache-all" { targets = [ "php84-slim-apache", @@ -140,6 +162,9 @@ group "php74-cli-all" { } +group "php85" { + targets = ["php85-apache-all","php85-fpm-all","php85-cli-all",] +} group "php84" { targets = ["php84-apache-all","php84-fpm-all","php84-cli-all",] } @@ -186,6 +211,237 @@ target "default" { } +########################### +## PHP 8.5 +########################### +# thecodingmachine/php:8.5-v5-slim-apache +target "php85-slim-apache" { + inherits = ["default"] + tags = tag("8.5", "slim-apache") + dockerfile = "Dockerfile.slim.apache" + args = { + PHP_VERSION = "8.5" + VARIANT = "apache" + } +} + +# thecodingmachine/php:8.5-v5-apache +target "php85-apache" { + inherits = ["default"] + tags = tag("8.5", "apache") + dockerfile = "Dockerfile.apache" + args = { + PHP_VERSION = "8.5" + VARIANT = "apache" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php85-slim-apache" + } +} + +# thecodingmachine/php:8.5-v5-apache-node24 +target "php85-apache-node24" { + inherits = ["default"] + tags = tag("8.5", "apache-node24") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.5" + VARIANT = "apache-node24" + FROM_IMAGE = "fat" + NODE_VERSION = "24" + } + contexts = { + fat = "target:php85-apache" + } +} + +# thecodingmachine/php:8.5-v5-apache-node22 +target "php85-apache-node22" { + inherits = ["default"] + tags = tag("8.5", "apache-node22") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.5" + VARIANT = "apache-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php85-apache" + } +} + +# thecodingmachine/php:8.5-v5-apache-node20 +target "php85-apache-node20" { + inherits = ["default"] + tags = tag("8.5", "apache-node20") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.5" + VARIANT = "apache-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php85-apache" + } +} + +########################### +## PHP 8.5 +########################### +# thecodingmachine/php:8.5-v5-slim-fpm +target "php85-slim-fpm" { + inherits = ["default"] + tags = tag("8.5", "slim-fpm") + dockerfile = "Dockerfile.slim.fpm" + args = { + PHP_VERSION = "8.5" + VARIANT = "fpm" + } +} + +# thecodingmachine/php:8.5-v5-fpm +target "php85-fpm" { + inherits = ["default"] + tags = tag("8.5", "fpm") + dockerfile = "Dockerfile.fpm" + args = { + PHP_VERSION = "8.5" + VARIANT = "fpm" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php85-slim-fpm" + } +} + +# thecodingmachine/php:8.5-v5-fpm-node24 +target "php85-fpm-node24" { + inherits = ["default"] + tags = tag("8.5", "fpm-node24") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.5" + VARIANT = "fpm-node24" + FROM_IMAGE = "fat" + NODE_VERSION = "24" + } + contexts = { + fat = "target:php85-fpm" + } +} + +# thecodingmachine/php:8.5-v5-fpm-node22 +target "php85-fpm-node22" { + inherits = ["default"] + tags = tag("8.5", "fpm-node22") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.5" + VARIANT = "fpm-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php85-fpm" + } +} + +# thecodingmachine/php:8.5-v5-fpm-node20 +target "php85-fpm-node20" { + inherits = ["default"] + tags = tag("8.5", "fpm-node20") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.5" + VARIANT = "fpm-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php85-fpm" + } +} + +########################### +## PHP 8.5 +########################### +# thecodingmachine/php:8.5-v5-slim-cli +target "php85-slim-cli" { + inherits = ["default"] + tags = tag("8.5", "slim-cli") + dockerfile = "Dockerfile.slim.cli" + args = { + PHP_VERSION = "8.5" + VARIANT = "cli" + } +} + +# thecodingmachine/php:8.5-v5-cli +target "php85-cli" { + inherits = ["default"] + tags = tag("8.5", "cli") + dockerfile = "Dockerfile.cli" + args = { + PHP_VERSION = "8.5" + VARIANT = "cli" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php85-slim-cli" + } +} + +# thecodingmachine/php:8.5-v5-cli-node24 +target "php85-cli-node24" { + inherits = ["default"] + tags = tag("8.5", "cli-node24") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.5" + VARIANT = "cli-node24" + FROM_IMAGE = "fat" + NODE_VERSION = "24" + } + contexts = { + fat = "target:php85-cli" + } +} + +# thecodingmachine/php:8.5-v5-cli-node22 +target "php85-cli-node22" { + inherits = ["default"] + tags = tag("8.5", "cli-node22") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.5" + VARIANT = "cli-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php85-cli" + } +} + +# thecodingmachine/php:8.5-v5-cli-node20 +target "php85-cli-node20" { + inherits = ["default"] + tags = tag("8.5", "cli-node20") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.5" + VARIANT = "cli-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php85-cli" + } +} + ########################### ## PHP 8.4 ########################### diff --git a/extensions/8.5/amqp b/extensions/8.5/amqp new file mode 120000 index 00000000..f66005fc --- /dev/null +++ b/extensions/8.5/amqp @@ -0,0 +1 @@ +../core/amqp \ No newline at end of file diff --git a/extensions/8.5/apcu b/extensions/8.5/apcu new file mode 120000 index 00000000..ddbb93d6 --- /dev/null +++ b/extensions/8.5/apcu @@ -0,0 +1 @@ +../core/apcu \ No newline at end of file diff --git a/extensions/8.5/ast b/extensions/8.5/ast new file mode 120000 index 00000000..5241c003 --- /dev/null +++ b/extensions/8.5/ast @@ -0,0 +1 @@ +../core/ast \ No newline at end of file diff --git a/extensions/8.5/bcmath b/extensions/8.5/bcmath new file mode 120000 index 00000000..36953ef1 --- /dev/null +++ b/extensions/8.5/bcmath @@ -0,0 +1 @@ +../core/bcmath \ No newline at end of file diff --git a/extensions/8.5/bz2 b/extensions/8.5/bz2 new file mode 120000 index 00000000..34eaa01d --- /dev/null +++ b/extensions/8.5/bz2 @@ -0,0 +1 @@ +../core/bz2 \ No newline at end of file diff --git a/extensions/8.5/dba b/extensions/8.5/dba new file mode 120000 index 00000000..f9598d4d --- /dev/null +++ b/extensions/8.5/dba @@ -0,0 +1 @@ +../core/dba \ No newline at end of file diff --git a/extensions/8.5/disable_all.sh b/extensions/8.5/disable_all.sh new file mode 120000 index 00000000..36f58a80 --- /dev/null +++ b/extensions/8.5/disable_all.sh @@ -0,0 +1 @@ +../core/disable_all.sh \ No newline at end of file diff --git a/extensions/8.5/docker-install.sh b/extensions/8.5/docker-install.sh new file mode 120000 index 00000000..245891f8 --- /dev/null +++ b/extensions/8.5/docker-install.sh @@ -0,0 +1 @@ +../core/docker-install.sh \ No newline at end of file diff --git a/extensions/8.5/ds b/extensions/8.5/ds new file mode 120000 index 00000000..edbe1af6 --- /dev/null +++ b/extensions/8.5/ds @@ -0,0 +1 @@ +../core/ds \ No newline at end of file diff --git a/extensions/8.5/enchant b/extensions/8.5/enchant new file mode 120000 index 00000000..aa197129 --- /dev/null +++ b/extensions/8.5/enchant @@ -0,0 +1 @@ +../core/enchant \ No newline at end of file diff --git a/extensions/8.5/excimer b/extensions/8.5/excimer new file mode 120000 index 00000000..4e099313 --- /dev/null +++ b/extensions/8.5/excimer @@ -0,0 +1 @@ +../core/excimer \ No newline at end of file diff --git a/extensions/8.5/ffi b/extensions/8.5/ffi new file mode 120000 index 00000000..bcd5f3f1 --- /dev/null +++ b/extensions/8.5/ffi @@ -0,0 +1 @@ +../core/ffi \ No newline at end of file diff --git a/extensions/8.5/gd b/extensions/8.5/gd new file mode 120000 index 00000000..c4cfd1f9 --- /dev/null +++ b/extensions/8.5/gd @@ -0,0 +1 @@ +../core/gd \ No newline at end of file diff --git a/extensions/8.5/gettext b/extensions/8.5/gettext new file mode 120000 index 00000000..0369641a --- /dev/null +++ b/extensions/8.5/gettext @@ -0,0 +1 @@ +../core/gettext \ No newline at end of file diff --git a/extensions/8.5/gmp b/extensions/8.5/gmp new file mode 120000 index 00000000..d3dce5ec --- /dev/null +++ b/extensions/8.5/gmp @@ -0,0 +1 @@ +../core/gmp \ No newline at end of file diff --git a/extensions/8.5/grpc b/extensions/8.5/grpc new file mode 120000 index 00000000..57533a58 --- /dev/null +++ b/extensions/8.5/grpc @@ -0,0 +1 @@ +../core/grpc \ No newline at end of file diff --git a/extensions/8.5/igbinary b/extensions/8.5/igbinary new file mode 120000 index 00000000..c57a5ab9 --- /dev/null +++ b/extensions/8.5/igbinary @@ -0,0 +1 @@ +../core/igbinary \ No newline at end of file diff --git a/extensions/8.5/imagick b/extensions/8.5/imagick new file mode 120000 index 00000000..a55b99bc --- /dev/null +++ b/extensions/8.5/imagick @@ -0,0 +1 @@ +../core/imagick \ No newline at end of file diff --git a/extensions/8.5/imap b/extensions/8.5/imap new file mode 120000 index 00000000..4ee55a28 --- /dev/null +++ b/extensions/8.5/imap @@ -0,0 +1 @@ +../core/imap \ No newline at end of file diff --git a/extensions/8.5/install_all.sh b/extensions/8.5/install_all.sh new file mode 120000 index 00000000..615edbef --- /dev/null +++ b/extensions/8.5/install_all.sh @@ -0,0 +1 @@ +../core/install_all.sh \ No newline at end of file diff --git a/extensions/8.5/intl b/extensions/8.5/intl new file mode 120000 index 00000000..dd21da0b --- /dev/null +++ b/extensions/8.5/intl @@ -0,0 +1 @@ +../core/intl \ No newline at end of file diff --git a/extensions/8.5/ldap b/extensions/8.5/ldap new file mode 120000 index 00000000..394c7519 --- /dev/null +++ b/extensions/8.5/ldap @@ -0,0 +1 @@ +../core/ldap \ No newline at end of file diff --git a/extensions/8.5/mailparse b/extensions/8.5/mailparse new file mode 120000 index 00000000..e29c74c5 --- /dev/null +++ b/extensions/8.5/mailparse @@ -0,0 +1 @@ +../core/mailparse \ No newline at end of file diff --git a/extensions/8.5/memcached b/extensions/8.5/memcached new file mode 120000 index 00000000..13f2ea8c --- /dev/null +++ b/extensions/8.5/memcached @@ -0,0 +1 @@ +../core/memcached \ No newline at end of file diff --git a/extensions/8.5/mongodb b/extensions/8.5/mongodb new file mode 120000 index 00000000..7898c8e7 --- /dev/null +++ b/extensions/8.5/mongodb @@ -0,0 +1 @@ +../core/mongodb \ No newline at end of file diff --git a/extensions/8.5/msgpack b/extensions/8.5/msgpack new file mode 120000 index 00000000..2a72eaa8 --- /dev/null +++ b/extensions/8.5/msgpack @@ -0,0 +1 @@ +../core/msgpack \ No newline at end of file diff --git a/extensions/8.5/mysqli b/extensions/8.5/mysqli new file mode 120000 index 00000000..401b7fbf --- /dev/null +++ b/extensions/8.5/mysqli @@ -0,0 +1 @@ +../core/pdo_mysql \ No newline at end of file diff --git a/extensions/8.5/pcov b/extensions/8.5/pcov new file mode 120000 index 00000000..b99a0dd2 --- /dev/null +++ b/extensions/8.5/pcov @@ -0,0 +1 @@ +../core/pcov \ No newline at end of file diff --git a/extensions/8.5/pdo_dblib b/extensions/8.5/pdo_dblib new file mode 120000 index 00000000..2261140c --- /dev/null +++ b/extensions/8.5/pdo_dblib @@ -0,0 +1 @@ +../core/pdo_dblib \ No newline at end of file diff --git a/extensions/8.5/pdo_mysql b/extensions/8.5/pdo_mysql new file mode 120000 index 00000000..401b7fbf --- /dev/null +++ b/extensions/8.5/pdo_mysql @@ -0,0 +1 @@ +../core/pdo_mysql \ No newline at end of file diff --git a/extensions/8.5/pdo_pgsql b/extensions/8.5/pdo_pgsql new file mode 120000 index 00000000..3a0bda2d --- /dev/null +++ b/extensions/8.5/pdo_pgsql @@ -0,0 +1 @@ +../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/8.5/pdo_sqlite b/extensions/8.5/pdo_sqlite new file mode 120000 index 00000000..84c26578 --- /dev/null +++ b/extensions/8.5/pdo_sqlite @@ -0,0 +1 @@ +../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/8.5/pgsql b/extensions/8.5/pgsql new file mode 120000 index 00000000..3a0bda2d --- /dev/null +++ b/extensions/8.5/pgsql @@ -0,0 +1 @@ +../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/8.5/pspell b/extensions/8.5/pspell new file mode 120000 index 00000000..9be96fd9 --- /dev/null +++ b/extensions/8.5/pspell @@ -0,0 +1 @@ +../core/pspell \ No newline at end of file diff --git a/extensions/8.5/rdkafka b/extensions/8.5/rdkafka new file mode 120000 index 00000000..8fce5d9f --- /dev/null +++ b/extensions/8.5/rdkafka @@ -0,0 +1 @@ +../core/rdkafka/ \ No newline at end of file diff --git a/extensions/8.5/redis b/extensions/8.5/redis new file mode 120000 index 00000000..0727c021 --- /dev/null +++ b/extensions/8.5/redis @@ -0,0 +1 @@ +../core/redis \ No newline at end of file diff --git a/extensions/8.5/snmp b/extensions/8.5/snmp new file mode 120000 index 00000000..f2249ffe --- /dev/null +++ b/extensions/8.5/snmp @@ -0,0 +1 @@ +../core/snmp \ No newline at end of file diff --git a/extensions/8.5/soap b/extensions/8.5/soap new file mode 120000 index 00000000..ea63abf6 --- /dev/null +++ b/extensions/8.5/soap @@ -0,0 +1 @@ +../core/soap \ No newline at end of file diff --git a/extensions/8.5/sqlite3 b/extensions/8.5/sqlite3 new file mode 120000 index 00000000..84c26578 --- /dev/null +++ b/extensions/8.5/sqlite3 @@ -0,0 +1 @@ +../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/8.5/swoole b/extensions/8.5/swoole new file mode 120000 index 00000000..f20d56ed --- /dev/null +++ b/extensions/8.5/swoole @@ -0,0 +1 @@ +../core/swoole \ No newline at end of file diff --git a/extensions/8.5/tidy b/extensions/8.5/tidy new file mode 120000 index 00000000..e0434e64 --- /dev/null +++ b/extensions/8.5/tidy @@ -0,0 +1 @@ +../core/tidy \ No newline at end of file diff --git a/extensions/8.5/uploadprogress b/extensions/8.5/uploadprogress new file mode 120000 index 00000000..6b4b74d0 --- /dev/null +++ b/extensions/8.5/uploadprogress @@ -0,0 +1 @@ +../core/uploadprogress \ No newline at end of file diff --git a/extensions/8.5/uuid b/extensions/8.5/uuid new file mode 120000 index 00000000..7a522046 --- /dev/null +++ b/extensions/8.5/uuid @@ -0,0 +1 @@ +../core/uuid \ No newline at end of file diff --git a/extensions/8.5/xdebug b/extensions/8.5/xdebug new file mode 120000 index 00000000..2ee34925 --- /dev/null +++ b/extensions/8.5/xdebug @@ -0,0 +1 @@ +../core/xdebug \ No newline at end of file diff --git a/extensions/8.5/xmlrpc b/extensions/8.5/xmlrpc new file mode 120000 index 00000000..2833c799 --- /dev/null +++ b/extensions/8.5/xmlrpc @@ -0,0 +1 @@ +../core/xmlrpc \ No newline at end of file diff --git a/extensions/8.5/yaml b/extensions/8.5/yaml new file mode 120000 index 00000000..4be2658a --- /dev/null +++ b/extensions/8.5/yaml @@ -0,0 +1 @@ +../core/yaml \ No newline at end of file diff --git a/extensions/8.5/zip b/extensions/8.5/zip new file mode 120000 index 00000000..98c05831 --- /dev/null +++ b/extensions/8.5/zip @@ -0,0 +1 @@ +../core/zip \ No newline at end of file diff --git a/tests-suite/php-blackfire.sh b/tests-suite/php-blackfire.sh index b82b28e6..6d34222e 100755 --- a/tests-suite/php-blackfire.sh +++ b/tests-suite/php-blackfire.sh @@ -1,8 +1,8 @@ #!/usr/bin/env bash . ./config -if [[ "${PHP_VERSION}" == "8.4" ]]; then - echo "-- PHP8.4 not support yet blackfire : https://support.blackfire.platform.sh/hc/en-us/articles/4740726712082-PHP-versions-Platforms-support" +if [[ "${PHP_VERSION}" == "8.4" ]] || [[ "${PHP_VERSION}" == "8.5" ]]; then + echo "-- PHP${PHP_VERSION} not support yet blackfire : https://support.blackfire.platform.sh/hc/en-us/articles/4740726712082-PHP-versions-Platforms-support" return 0 fi test_enable() { diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 0b04fce3..d0857cf0 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -16,7 +16,7 @@ This repository contains a set of developer-friendly, general purpose PHP images {{ $image := .Orbit.Images }} ## Images -{{ $versions := list "8.4" "8.3" "8.2" "8.1" }} +{{ $versions := list "8.5" "8.4" "8.3" "8.2" "8.1" }} {{ $nodeVersions := list "20" "22" "24" }} | Name | PHP version | type |variant | NodeJS version | Size @@ -100,7 +100,7 @@ This list can be outdated, you can verify by executing : `docker run --rm -it th - *ev* is not available in PHP 8.1+ - *rdkafka* and *snmp* are not available in all `ARM64` images (build time is too long : it's possible to install manually as required) -- *blackfire* not supported yet in PHP8.4 : https://support.blackfire.platform.sh/hc/en-us/articles/4740726712082-PHP-versions-Platforms-support +- *blackfire* not supported yet in PHP8.4+ : https://support.blackfire.platform.sh/hc/en-us/articles/4740726712082-PHP-versions-Platforms-support ### Enabling/disabling extensions in the fat image diff --git a/utils/docker-bake.blueprint.hcl b/utils/docker-bake.blueprint.hcl index 6e2e3217..09ba83eb 100644 --- a/utils/docker-bake.blueprint.hcl +++ b/utils/docker-bake.blueprint.hcl @@ -1,4 +1,4 @@ -{{ $variants := list "apache" "fpm" "cli" }}{{ $versions := list "8.4" "8.3" "8.2" "8.1" "8.0" "7.4" }}{{ $nodeVersions := list "24" "22" "20" }} +{{ $variants := list "apache" "fpm" "cli" }}{{ $versions := list "8.5" "8.4" "8.3" "8.2" "8.1" "8.0" "7.4" }}{{ $nodeVersions := list "24" "22" "20" }} group "default" { targets = [ {{range $phpV := $versions}} From cb5ee85669c16d60a212beca58d53f4249a8e8f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Tvrd=C3=ADk?= Date: Mon, 1 Dec 2025 22:11:24 +0100 Subject: [PATCH 2/3] Fix PHP 8.5 build: opcache is built-in From PHP 8.5, opcache is a built-in feature and the php8.5-opcache package doesn't exist. Conditionally include the opcache package only for PHP versions other than 8.5. --- Dockerfile.slim.apache | 9 +++++++-- Dockerfile.slim.cli | 9 +++++++-- Dockerfile.slim.fpm | 9 +++++++-- utils/Dockerfile.slim.blueprint | 9 +++++++-- 4 files changed, 28 insertions(+), 8 deletions(-) diff --git a/Dockerfile.slim.apache b/Dockerfile.slim.apache index cd40d4eb..b60e05eb 100644 --- a/Dockerfile.slim.apache +++ b/Dockerfile.slim.apache @@ -49,12 +49,17 @@ RUN apt update \ openssh-client \ && apt clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* -RUN apt update \ +# Note: From PHP 8.5, opcache is built-in and php${PHP_VERSION}-opcache package doesn't exist +RUN OPCACHE_PACKAGE="" \ + && if [ "${PHP_VERSION}" != "8.5" ]; then \ + OPCACHE_PACKAGE="php${PHP_VERSION}-opcache"; \ + fi \ + && apt update \ && apt install -y --no-install-recommends \ php${PHP_VERSION}-cli \ php${PHP_VERSION}-curl \ php${PHP_VERSION}-mbstring \ - php${PHP_VERSION}-opcache \ + ${OPCACHE_PACKAGE} \ php${PHP_VERSION}-readline \ php${PHP_VERSION}-xml \ php${PHP_VERSION}-zip \ diff --git a/Dockerfile.slim.cli b/Dockerfile.slim.cli index 2e2d849a..741eeb6d 100644 --- a/Dockerfile.slim.cli +++ b/Dockerfile.slim.cli @@ -49,12 +49,17 @@ RUN apt update \ openssh-client \ && apt clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* -RUN apt update \ +# Note: From PHP 8.5, opcache is built-in and php${PHP_VERSION}-opcache package doesn't exist +RUN OPCACHE_PACKAGE="" \ + && if [ "${PHP_VERSION}" != "8.5" ]; then \ + OPCACHE_PACKAGE="php${PHP_VERSION}-opcache"; \ + fi \ + && apt update \ && apt install -y --no-install-recommends \ php${PHP_VERSION}-cli \ php${PHP_VERSION}-curl \ php${PHP_VERSION}-mbstring \ - php${PHP_VERSION}-opcache \ + ${OPCACHE_PACKAGE} \ php${PHP_VERSION}-readline \ php${PHP_VERSION}-xml \ php${PHP_VERSION}-zip \ diff --git a/Dockerfile.slim.fpm b/Dockerfile.slim.fpm index ebff57ea..ee7e6207 100644 --- a/Dockerfile.slim.fpm +++ b/Dockerfile.slim.fpm @@ -49,12 +49,17 @@ RUN apt update \ openssh-client \ && apt clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* -RUN apt update \ +# Note: From PHP 8.5, opcache is built-in and php${PHP_VERSION}-opcache package doesn't exist +RUN OPCACHE_PACKAGE="" \ + && if [ "${PHP_VERSION}" != "8.5" ]; then \ + OPCACHE_PACKAGE="php${PHP_VERSION}-opcache"; \ + fi \ + && apt update \ && apt install -y --no-install-recommends \ php${PHP_VERSION}-cli \ php${PHP_VERSION}-curl \ php${PHP_VERSION}-mbstring \ - php${PHP_VERSION}-opcache \ + ${OPCACHE_PACKAGE} \ php${PHP_VERSION}-readline \ php${PHP_VERSION}-xml \ php${PHP_VERSION}-zip \ diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index fe729664..6fe853ad 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -48,12 +48,17 @@ RUN apt update \ openssh-client \ && apt clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* -RUN apt update \ +# Note: From PHP 8.5, opcache is built-in and php${PHP_VERSION}-opcache package doesn't exist +RUN OPCACHE_PACKAGE="" \ + && if [ "${PHP_VERSION}" != "8.5" ]; then \ + OPCACHE_PACKAGE="php${PHP_VERSION}-opcache"; \ + fi \ + && apt update \ && apt install -y --no-install-recommends \ php${PHP_VERSION}-cli \ php${PHP_VERSION}-curl \ php${PHP_VERSION}-mbstring \ - php${PHP_VERSION}-opcache \ + ${OPCACHE_PACKAGE} \ php${PHP_VERSION}-readline \ php${PHP_VERSION}-xml \ php${PHP_VERSION}-zip \ From 5ab7c666a7e2465460cf04ca11771072027cdde7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Tvrd=C3=ADk?= Date: Mon, 1 Dec 2025 22:33:48 +0100 Subject: [PATCH 3/3] Enable Blackfire support for PHP 8.4 and 8.5 Blackfire now supports PHP 8.4 and 8.5 according to their documentation. Remove the version check that skipped blackfire tests and remove the outdated note from the README. --- README.md | 3 +-- extensions/8.4/blackfire | 1 + extensions/8.5/blackfire | 1 + tests-suite/php-blackfire.sh | 4 ---- utils/README.blueprint.md | 3 +-- 5 files changed, 4 insertions(+), 8 deletions(-) create mode 120000 extensions/8.4/blackfire create mode 120000 extensions/8.5/blackfire diff --git a/README.md b/README.md index cc2bacf7..e374c18f 100644 --- a/README.md +++ b/README.md @@ -166,8 +166,7 @@ This list can be outdated, you can verify by executing : `docker run --rm -it th **Note**: - *ev* is not available in PHP 8.1+ -- *rdkafka* and *snmp* are not available in all `ARM64` images (build time is too long : it's possible to install manually as required) -- *blackfire* not supported yet in PHP8.4 : https://support.blackfire.platform.sh/hc/en-us/articles/4740726712082-PHP-versions-Platforms-support +- *rdkafka* and *snmp* are not available in all `ARM64` images (build time is too long : it's possible to install manually as required) ### Enabling/disabling extensions in the fat image diff --git a/extensions/8.4/blackfire b/extensions/8.4/blackfire new file mode 120000 index 00000000..1179c0b9 --- /dev/null +++ b/extensions/8.4/blackfire @@ -0,0 +1 @@ +../core/blackfire \ No newline at end of file diff --git a/extensions/8.5/blackfire b/extensions/8.5/blackfire new file mode 120000 index 00000000..1179c0b9 --- /dev/null +++ b/extensions/8.5/blackfire @@ -0,0 +1 @@ +../core/blackfire \ No newline at end of file diff --git a/tests-suite/php-blackfire.sh b/tests-suite/php-blackfire.sh index 6d34222e..69b14f18 100755 --- a/tests-suite/php-blackfire.sh +++ b/tests-suite/php-blackfire.sh @@ -1,10 +1,6 @@ #!/usr/bin/env bash . ./config -if [[ "${PHP_VERSION}" == "8.4" ]] || [[ "${PHP_VERSION}" == "8.5" ]]; then - echo "-- PHP${PHP_VERSION} not support yet blackfire : https://support.blackfire.platform.sh/hc/en-us/articles/4740726712082-PHP-versions-Platforms-support" - return 0 -fi test_enable() { # Check that blackfire can be enabled docker run ${RUN_OPTIONS} --rm -e PHP_EXTENSION_BLACKFIRE=1 "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" \ diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index d0857cf0..f3187379 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -99,8 +99,7 @@ This list can be outdated, you can verify by executing : `docker run --rm -it th **Note**: - *ev* is not available in PHP 8.1+ -- *rdkafka* and *snmp* are not available in all `ARM64` images (build time is too long : it's possible to install manually as required) -- *blackfire* not supported yet in PHP8.4+ : https://support.blackfire.platform.sh/hc/en-us/articles/4740726712082-PHP-versions-Platforms-support +- *rdkafka* and *snmp* are not available in all `ARM64` images (build time is too long : it's possible to install manually as required) ### Enabling/disabling extensions in the fat image