diff --git a/.github/workflows/build-php-images.yml b/.github/workflows/build-php-images.yml index c9ca907f..32b9ef08 100644 --- a/.github/workflows/build-php-images.yml +++ b/.github/workflows/build-php-images.yml @@ -25,27 +25,35 @@ jobs: - image: php tag: 8.5-fpm-7 context: images/8.5-fpm + min_php: 8.5.12 - image: php tag: 8.5-apache-7 context: images/8.5-apache + min_php: 8.5.12 - image: php tag: 8.4-fpm-7 context: images/8.4-fpm + min_php: 8.4.27 - image: php tag: 8.4-apache-7 context: images/8.4-apache + min_php: 8.4.27 - image: php tag: 8.3-fpm-7 context: images/8.3-fpm + min_php: 8.3.36 - image: php tag: 8.3-apache-7 context: images/8.3-apache + min_php: 8.3.36 - image: php tag: 8.2-fpm-7 context: images/8.2-fpm + min_php: 8.2.35 - image: php tag: 8.2-apache-7 context: images/8.2-apache + min_php: 8.2.35 - image: php tag: 8.1-fpm-7 context: images/8.1-fpm @@ -119,5 +127,7 @@ jobs: platforms: linux/amd64,linux/arm64 push: true tags: devwithlando/${{ matrix.image }}:${{ matrix.tag }}${{ steps.release.outputs.tag_suffix }} + pull: true + build-args: MIN_PHP=${{ matrix.min_php }} cache-from: type=gha,scope=${{ matrix.image }}-${{ matrix.tag }} cache-to: type=gha,mode=max,scope=${{ matrix.image }}-${{ matrix.tag }} diff --git a/CHANGELOG.md b/CHANGELOG.md index ee1d58b6..7b7e25b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ ## {{ UNRELEASED_VERSION }} - [{{ UNRELEASED_DATE }}]({{ UNRELEASED_LINK }}) +* Added minimum PHP version build checks for supported PHP `8.2`–`8.5` images [#255](https://github.com/lando/php/pull/255) + ## v1.12.0 - [March 8, 2026](https://github.com/lando/php/releases/tag/v1.12.0) * Enabled `mod_headers` and `mod_expires` Apache modules by default [#243](https://github.com/lando/php/issues/243) diff --git a/images/8.2-apache/Dockerfile b/images/8.2-apache/Dockerfile index d410ab07..ad38cf98 100644 --- a/images/8.2-apache/Dockerfile +++ b/images/8.2-apache/Dockerfile @@ -1,6 +1,8 @@ # docker build -t devwithlando/php:8.2-apache-7 . FROM php:8.2-apache-bookworm +ARG MIN_PHP= +RUN [ -z "$MIN_PHP" ] || dpkg --compare-versions "$PHP_VERSION" ge "$MIN_PHP" || { echo "PHP $PHP_VERSION < $MIN_PHP"; exit 1; } ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ diff --git a/images/8.2-fpm/Dockerfile b/images/8.2-fpm/Dockerfile index 7577dfa0..b06f76e8 100644 --- a/images/8.2-fpm/Dockerfile +++ b/images/8.2-fpm/Dockerfile @@ -1,6 +1,8 @@ # docker build -t devwithlando/php:8.2-fpm-7 . FROM php:8.2-fpm-bookworm +ARG MIN_PHP= +RUN [ -z "$MIN_PHP" ] || dpkg --compare-versions "$PHP_VERSION" ge "$MIN_PHP" || { echo "PHP $PHP_VERSION < $MIN_PHP"; exit 1; } ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ diff --git a/images/8.3-apache/Dockerfile b/images/8.3-apache/Dockerfile index 45b5e5bf..e008dafc 100644 --- a/images/8.3-apache/Dockerfile +++ b/images/8.3-apache/Dockerfile @@ -4,6 +4,8 @@ FROM mysql:8.0 AS mysql-client-80 FROM mysql:8.4 AS mysql-client-84 FROM php:8.3-apache-trixie +ARG MIN_PHP= +RUN [ -z "$MIN_PHP" ] || dpkg --compare-versions "$PHP_VERSION" ge "$MIN_PHP" || { echo "PHP $PHP_VERSION < $MIN_PHP"; exit 1; } ARG TARGETARCH diff --git a/images/8.3-fpm/Dockerfile b/images/8.3-fpm/Dockerfile index 6fb8f129..d70fafe9 100644 --- a/images/8.3-fpm/Dockerfile +++ b/images/8.3-fpm/Dockerfile @@ -4,6 +4,8 @@ FROM mysql:8.0 AS mysql-client-80 FROM mysql:8.4 AS mysql-client-84 FROM php:8.3-fpm-trixie +ARG MIN_PHP= +RUN [ -z "$MIN_PHP" ] || dpkg --compare-versions "$PHP_VERSION" ge "$MIN_PHP" || { echo "PHP $PHP_VERSION < $MIN_PHP"; exit 1; } ARG TARGETARCH diff --git a/images/8.4-apache/Dockerfile b/images/8.4-apache/Dockerfile index 507210b5..d9103989 100644 --- a/images/8.4-apache/Dockerfile +++ b/images/8.4-apache/Dockerfile @@ -4,6 +4,8 @@ FROM mysql:8.0 AS mysql-client-80 FROM mysql:8.4 AS mysql-client-84 FROM php:8.4-apache-trixie +ARG MIN_PHP= +RUN [ -z "$MIN_PHP" ] || dpkg --compare-versions "$PHP_VERSION" ge "$MIN_PHP" || { echo "PHP $PHP_VERSION < $MIN_PHP"; exit 1; } ARG TARGETARCH diff --git a/images/8.4-fpm/Dockerfile b/images/8.4-fpm/Dockerfile index 153811ce..afe46e14 100644 --- a/images/8.4-fpm/Dockerfile +++ b/images/8.4-fpm/Dockerfile @@ -4,6 +4,8 @@ FROM mysql:8.0 AS mysql-client-80 FROM mysql:8.4 AS mysql-client-84 FROM php:8.4-fpm-trixie +ARG MIN_PHP= +RUN [ -z "$MIN_PHP" ] || dpkg --compare-versions "$PHP_VERSION" ge "$MIN_PHP" || { echo "PHP $PHP_VERSION < $MIN_PHP"; exit 1; } ARG TARGETARCH diff --git a/images/8.5-apache/Dockerfile b/images/8.5-apache/Dockerfile index 6b560662..082ae48e 100644 --- a/images/8.5-apache/Dockerfile +++ b/images/8.5-apache/Dockerfile @@ -4,6 +4,8 @@ FROM mysql:8.0 AS mysql-client-80 FROM mysql:8.4 AS mysql-client-84 FROM php:8.5-apache-trixie +ARG MIN_PHP= +RUN [ -z "$MIN_PHP" ] || dpkg --compare-versions "$PHP_VERSION" ge "$MIN_PHP" || { echo "PHP $PHP_VERSION < $MIN_PHP"; exit 1; } ARG TARGETARCH diff --git a/images/8.5-fpm/Dockerfile b/images/8.5-fpm/Dockerfile index 38d497a4..81cc4dce 100644 --- a/images/8.5-fpm/Dockerfile +++ b/images/8.5-fpm/Dockerfile @@ -4,6 +4,8 @@ FROM mysql:8.0 AS mysql-client-80 FROM mysql:8.4 AS mysql-client-84 FROM php:8.5-fpm-trixie +ARG MIN_PHP= +RUN [ -z "$MIN_PHP" ] || dpkg --compare-versions "$PHP_VERSION" ge "$MIN_PHP" || { echo "PHP $PHP_VERSION < $MIN_PHP"; exit 1; } ARG TARGETARCH