From c97fc0585acf1e5fe65b0f6dfa983270f2479d21 Mon Sep 17 00:00:00 2001 From: le0m Date: Thu, 30 Nov 2023 17:33:48 +0100 Subject: [PATCH 1/2] feat: add PHP 8.3 images --- .github/workflows/main.yml | 4 ++-- Makefile | 4 ++-- README.md | 3 +++ dev/Makefile | 4 ++-- dev/README.md | 3 +++ pcov/Makefile | 2 +- pcov/README.md | 3 +++ xhprof/Makefile | 4 ++-- xhprof/README.md | 3 +++ 9 files changed, 21 insertions(+), 9 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 650ceb6..b87471c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -17,7 +17,7 @@ jobs: if: ${{ !contains(github.event.commits[0].message, '[skip ci]') && !contains(github.event.commits[0].message, '[ci skip]') }} strategy: matrix: - version: [ '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2' ] + version: [ '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3' ] flavor: [ '', '-apache', '-fpm', '-alpine', '-fpm-alpine' ] include: - version: 'latest' @@ -117,7 +117,7 @@ jobs: if: ${{ github.event_name != 'pull_request' && !contains(github.event.commits[0].message, '[skip ci]') && !contains(github.event.commits[0].message, '[ci skip]') }} strategy: matrix: - version: [ '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2' ] + version: [ '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3' ] flavor: [ '', '-apache', '-fpm', '-alpine', '-fpm-alpine' ] include: - version: 'latest' diff --git a/Makefile b/Makefile index efc38cc..dd36fde 100644 --- a/Makefile +++ b/Makefile @@ -33,11 +33,11 @@ EXTENSIONS := \ xsl \ zip \ sockets -ifeq (,$(findstring $(PHP_VERSION), 7.2 7.3 7.4 8.0 8.1 8.2 latest alpine)) +ifeq (,$(findstring $(PHP_VERSION), 7.2 7.3 7.4 8.0 8.1 8.2 8.3 latest alpine)) # Add more extensions to PHP < 7.2. EXTENSIONS += mcrypt endif -ifeq (,$(findstring $(PHP_VERSION), 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 latest alpine)) +ifeq (,$(findstring $(PHP_VERSION), 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 latest alpine)) # Add more extensions to 5.x series images. EXTENSIONS += mysql endif diff --git a/README.md b/README.md index 5aeb1e8..376497e 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,9 @@ For development environments, you might want to choose an [image with XDebug ins - `8.2` - `8.2-apache` - `8.2-fpm` +- `8.3` +- `8.3-apache` +- `8.3-fpm` As you might have guessed, all tags are built on top of the corresponding tag of the official image. Not all tags are supported in order to easen maintenance. diff --git a/dev/Makefile b/dev/Makefile index bfba162..5067a05 100644 --- a/dev/Makefile +++ b/dev/Makefile @@ -34,11 +34,11 @@ EXTENSIONS := \ xsl \ zip \ sockets -ifeq (,$(findstring $(PHP_VERSION), 7.2 7.3 7.4 8.0 8.1 8.2 latest alpine)) +ifeq (,$(findstring $(PHP_VERSION), 7.2 7.3 7.4 8.0 8.1 8.2 8.3 latest alpine)) # Add more extensions to PHP < 7.2. EXTENSIONS += mcrypt endif -ifeq (,$(findstring $(PHP_VERSION), 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 latest alpine)) +ifeq (,$(findstring $(PHP_VERSION), 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 latest alpine)) # Add more extensions to 5.x series images. EXTENSIONS += mysql endif diff --git a/dev/README.md b/dev/README.md index f92aebc..d5d2703 100644 --- a/dev/README.md +++ b/dev/README.md @@ -53,6 +53,9 @@ For more production-like environments, you might want to choose an [image *witho - `8.2` - `8.2-apache` - `8.2-fpm` +- `8.3` +- `8.3-apache` +- `8.3-fpm` As you might have guessed, all tags are built on top of the corresponding tag of the official image. Not all tags are supported in order to easen maintenance. diff --git a/pcov/Makefile b/pcov/Makefile index 16f8c69..d15e3f4 100644 --- a/pcov/Makefile +++ b/pcov/Makefile @@ -34,7 +34,7 @@ EXTENSIONS := \ xsl \ zip \ sockets -ifeq (,$(findstring $(PHP_VERSION), 7.2 7.3 7.4 8.0 8.1 8.2 latest alpine)) +ifeq (,$(findstring $(PHP_VERSION), 7.2 7.3 7.4 8.0 8.1 8.2 8.3 latest alpine)) # Add more extensions to PHP < 7.2. EXTENSIONS += mcrypt endif diff --git a/pcov/README.md b/pcov/README.md index c321cd2..e7a49c8 100644 --- a/pcov/README.md +++ b/pcov/README.md @@ -47,6 +47,9 @@ For more production-like environments, you might want to choose an [image *witho - `8.2` - `8.2-apache` - `8.2-fpm` +- `8.3` +- `8.3-apache` +- `8.3-fpm` As you might have guessed, all tags are built on top of the corresponding tag of the official image. Not all tags are supported in order to easen maintenance. diff --git a/xhprof/Makefile b/xhprof/Makefile index 7dfbf51..e4a0934 100644 --- a/xhprof/Makefile +++ b/xhprof/Makefile @@ -34,11 +34,11 @@ EXTENSIONS := \ xhprof \ xsl \ zip -ifeq (,$(findstring $(PHP_VERSION), 7.2 7.3 7.4 8.0 8.1 8.2 latest alpine)) +ifeq (,$(findstring $(PHP_VERSION), 7.2 7.3 7.4 8.0 8.1 8.2 8.3 latest alpine)) # Add more extensions to PHP < 7.2. EXTENSIONS += mcrypt endif -ifeq (,$(findstring $(PHP_VERSION), 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 latest alpine)) +ifeq (,$(findstring $(PHP_VERSION), 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 latest alpine)) # Add more extensions to 5.x series images. EXTENSIONS += mysql endif diff --git a/xhprof/README.md b/xhprof/README.md index b32f84f..b9fa9cc 100644 --- a/xhprof/README.md +++ b/xhprof/README.md @@ -53,6 +53,9 @@ For more production-like environments, you might want to choose an [image *witho - `8.2` - `8.2-apache` - `8.2-fpm` +- `8.3` +- `8.3-apache` +- `8.3-fpm` As you might have guessed, all tags are built on top of the corresponding tag of the official image. Not all tags are supported in order to easen maintenance. From a16c511ef925149972a4373ae10a25e8f5eabd67 Mon Sep 17 00:00:00 2001 From: le0m Date: Tue, 30 Jan 2024 15:08:33 +0100 Subject: [PATCH 2/2] fix: workaround to install Imagick with PHP >= 8.3 --- Dockerfile | 6 +++++- Dockerfile.alpine | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index cae8d9c..440425c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,7 +29,6 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update -q \ exif \ gd \ gettext \ - imagick \ intl \ ldap \ memcached \ @@ -48,6 +47,11 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update -q \ 5.6.*) PHP_EXTENSIONS="$PHP_EXTENSIONS mcrypt mysql";; \ 7.0.*|7.1.*) PHP_EXTENSIONS="$PHP_EXTENSIONS mcrypt";; \ esac \ + # Install Imagick from master on PHP >= 8.3, because imagick 3.7.0 broke on latest PHP releases and Imagick maintainers don't care to tag a newer release + && if [ $(php -r 'echo PHP_VERSION_ID;') -lt 80300 ]; then \ + PHP_EXTENSIONS="$PHP_EXTENSIONS imagick"; \ + else PHP_EXTENSIONS="$PHP_EXTENSIONS https://api.github.com/repos/Imagick/imagick/tarball/28f27044e435a2b203e32675e942eb8de620ee58"; \ + fi \ && install-php-extensions $PHP_EXTENSIONS \ && if command -v a2enmod; then a2enmod rewrite; fi diff --git a/Dockerfile.alpine b/Dockerfile.alpine index 9fddb5c..804a911 100644 --- a/Dockerfile.alpine +++ b/Dockerfile.alpine @@ -21,7 +21,6 @@ RUN apk add --no-cache \ exif \ gd \ gettext \ - imagick \ intl \ ldap \ memcached \ @@ -40,6 +39,11 @@ RUN apk add --no-cache \ 5.6.*) PHP_EXTENSIONS="$PHP_EXTENSIONS mcrypt mysql";; \ 7.0.*|7.1.*) PHP_EXTENSIONS="$PHP_EXTENSIONS mcrypt";; \ esac \ + # Install Imagick from master on PHP >= 8.3, because imagick 3.7.0 broke on latest PHP releases and Imagick maintainers don't care to tag a newer release + && if [ $(php -r 'echo PHP_VERSION_ID;') -lt 80300 ]; then \ + PHP_EXTENSIONS="$PHP_EXTENSIONS imagick"; \ + else PHP_EXTENSIONS="$PHP_EXTENSIONS https://api.github.com/repos/Imagick/imagick/tarball/28f27044e435a2b203e32675e942eb8de620ee58"; \ + fi \ && install-php-extensions $PHP_EXTENSIONS \ && if command -v a2enmod; then a2enmod rewrite; fi