From cc7e15bf0fe9956e58296d70aea77792bb0da7f8 Mon Sep 17 00:00:00 2001 From: Jesper Noordsij Date: Tue, 6 Jan 2026 10:36:15 +0100 Subject: [PATCH 1/3] Add PHP 8.5 variant (for 11.3 only) Also (automatically) drop some unused (rc) version from versions.json --- 11.3/php8.5/apache-bookworm/Dockerfile | 99 ++++++++++++++++++++++++++ 11.3/php8.5/apache-trixie/Dockerfile | 99 ++++++++++++++++++++++++++ 11.3/php8.5/fpm-alpine3.22/Dockerfile | 81 +++++++++++++++++++++ 11.3/php8.5/fpm-alpine3.23/Dockerfile | 81 +++++++++++++++++++++ 11.3/php8.5/fpm-bookworm/Dockerfile | 92 ++++++++++++++++++++++++ 11.3/php8.5/fpm-trixie/Dockerfile | 92 ++++++++++++++++++++++++ generate-stackbrew-library.sh | 10 +-- versions.json | 7 +- versions.sh | 4 ++ 9 files changed, 556 insertions(+), 9 deletions(-) create mode 100644 11.3/php8.5/apache-bookworm/Dockerfile create mode 100644 11.3/php8.5/apache-trixie/Dockerfile create mode 100644 11.3/php8.5/fpm-alpine3.22/Dockerfile create mode 100644 11.3/php8.5/fpm-alpine3.23/Dockerfile create mode 100644 11.3/php8.5/fpm-bookworm/Dockerfile create mode 100644 11.3/php8.5/fpm-trixie/Dockerfile diff --git a/11.3/php8.5/apache-bookworm/Dockerfile b/11.3/php8.5/apache-bookworm/Dockerfile new file mode 100644 index 00000000..f42a0fdd --- /dev/null +++ b/11.3/php8.5/apache-bookworm/Dockerfile @@ -0,0 +1,99 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.5-apache-bookworm + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ +# https://github.com/drupal/drupal/blob/d91d8d0a6d3ffe5f0b6dde8c2fbe81404843edc5/.htaccess (references both mod_expires and mod_rewrite explicitly) + a2enmod expires rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# https://www.drupal.org/node/3298550 +# Drupal now recommends sites enable PHP output buffering by default, if PHP is run as a server module +# e.g. with Apache's mod_php +RUN { \ + echo 'output_buffering=true'; \ + } > /usr/local/etc/php/conf.d/docker-php-drupal-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# 2025-12-18: https://www.drupal.org/project/drupal/releases/11.3.1 +ENV DRUPAL_VERSION 11.3.1 + +# https://github.com/docker-library/drupal/pull/259 +# https://github.com/moby/buildkit/issues/4503 +# https://github.com/composer/composer/issues/11839 +# https://github.com/composer/composer/issues/11854 +# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 +ENV COMPOSER_ALLOW_SUPERUSER 1 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ +# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 + composer check-platform-reqs; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/11.3/php8.5/apache-trixie/Dockerfile b/11.3/php8.5/apache-trixie/Dockerfile new file mode 100644 index 00000000..8f6193e9 --- /dev/null +++ b/11.3/php8.5/apache-trixie/Dockerfile @@ -0,0 +1,99 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.5-apache-trixie + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ +# https://github.com/drupal/drupal/blob/d91d8d0a6d3ffe5f0b6dde8c2fbe81404843edc5/.htaccess (references both mod_expires and mod_rewrite explicitly) + a2enmod expires rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# https://www.drupal.org/node/3298550 +# Drupal now recommends sites enable PHP output buffering by default, if PHP is run as a server module +# e.g. with Apache's mod_php +RUN { \ + echo 'output_buffering=true'; \ + } > /usr/local/etc/php/conf.d/docker-php-drupal-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# 2025-12-18: https://www.drupal.org/project/drupal/releases/11.3.1 +ENV DRUPAL_VERSION 11.3.1 + +# https://github.com/docker-library/drupal/pull/259 +# https://github.com/moby/buildkit/issues/4503 +# https://github.com/composer/composer/issues/11839 +# https://github.com/composer/composer/issues/11854 +# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 +ENV COMPOSER_ALLOW_SUPERUSER 1 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ +# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 + composer check-platform-reqs; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/11.3/php8.5/fpm-alpine3.22/Dockerfile b/11.3/php8.5/fpm-alpine3.22/Dockerfile new file mode 100644 index 00000000..319ba0fe --- /dev/null +++ b/11.3/php8.5/fpm-alpine3.22/Dockerfile @@ -0,0 +1,81 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.5-fpm-alpine3.22 + +# install the PHP extensions we need +RUN set -eux; \ + \ + apk add --no-cache --virtual .build-deps \ + coreutils \ + freetype-dev \ + libjpeg-turbo-dev \ + libpng-dev \ + libwebp-dev \ + libzip-dev \ +# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642 + postgresql-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr/include \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps; \ + apk del --no-network .build-deps + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# 2025-12-18: https://www.drupal.org/project/drupal/releases/11.3.1 +ENV DRUPAL_VERSION 11.3.1 + +# https://github.com/docker-library/drupal/pull/259 +# https://github.com/moby/buildkit/issues/4503 +# https://github.com/composer/composer/issues/11839 +# https://github.com/composer/composer/issues/11854 +# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 +ENV COMPOSER_ALLOW_SUPERUSER 1 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ +# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 + composer check-platform-reqs; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/11.3/php8.5/fpm-alpine3.23/Dockerfile b/11.3/php8.5/fpm-alpine3.23/Dockerfile new file mode 100644 index 00000000..29e58392 --- /dev/null +++ b/11.3/php8.5/fpm-alpine3.23/Dockerfile @@ -0,0 +1,81 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.5-fpm-alpine3.23 + +# install the PHP extensions we need +RUN set -eux; \ + \ + apk add --no-cache --virtual .build-deps \ + coreutils \ + freetype-dev \ + libjpeg-turbo-dev \ + libpng-dev \ + libwebp-dev \ + libzip-dev \ +# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642 + postgresql-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr/include \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps; \ + apk del --no-network .build-deps + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# 2025-12-18: https://www.drupal.org/project/drupal/releases/11.3.1 +ENV DRUPAL_VERSION 11.3.1 + +# https://github.com/docker-library/drupal/pull/259 +# https://github.com/moby/buildkit/issues/4503 +# https://github.com/composer/composer/issues/11839 +# https://github.com/composer/composer/issues/11854 +# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 +ENV COMPOSER_ALLOW_SUPERUSER 1 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ +# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 + composer check-platform-reqs; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/11.3/php8.5/fpm-bookworm/Dockerfile b/11.3/php8.5/fpm-bookworm/Dockerfile new file mode 100644 index 00000000..b54ca1b4 --- /dev/null +++ b/11.3/php8.5/fpm-bookworm/Dockerfile @@ -0,0 +1,92 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.5-fpm-bookworm + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ +# https://github.com/drupal/drupal/blob/d91d8d0a6d3ffe5f0b6dde8c2fbe81404843edc5/.htaccess (references both mod_expires and mod_rewrite explicitly) + a2enmod expires rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# 2025-12-18: https://www.drupal.org/project/drupal/releases/11.3.1 +ENV DRUPAL_VERSION 11.3.1 + +# https://github.com/docker-library/drupal/pull/259 +# https://github.com/moby/buildkit/issues/4503 +# https://github.com/composer/composer/issues/11839 +# https://github.com/composer/composer/issues/11854 +# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 +ENV COMPOSER_ALLOW_SUPERUSER 1 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ +# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 + composer check-platform-reqs; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/11.3/php8.5/fpm-trixie/Dockerfile b/11.3/php8.5/fpm-trixie/Dockerfile new file mode 100644 index 00000000..5f2c7f9e --- /dev/null +++ b/11.3/php8.5/fpm-trixie/Dockerfile @@ -0,0 +1,92 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.5-fpm-trixie + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ +# https://github.com/drupal/drupal/blob/d91d8d0a6d3ffe5f0b6dde8c2fbe81404843edc5/.htaccess (references both mod_expires and mod_rewrite explicitly) + a2enmod expires rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# 2025-12-18: https://www.drupal.org/project/drupal/releases/11.3.1 +ENV DRUPAL_VERSION 11.3.1 + +# https://github.com/docker-library/drupal/pull/259 +# https://github.com/moby/buildkit/issues/4503 +# https://github.com/composer/composer/issues/11839 +# https://github.com/composer/composer/issues/11854 +# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 +ENV COMPOSER_ALLOW_SUPERUSER 1 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ +# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 + composer check-platform-reqs; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh index 97b04500..4cef170f 100755 --- a/generate-stackbrew-library.sh +++ b/generate-stackbrew-library.sh @@ -11,11 +11,13 @@ declare -A debianSuites=( #[11.2]='bookworm' ) -defaultPhpVersion='php8.4' +defaultPhpVersion='php8.5' declare -A defaultPhpVersions=( -# releases older than 11 will conservatively stay on 8.2 by default - [11.1]='php8.3' - [10.4]='php8.3' +# releases up to 11.3 will conservatively stay on 8.4 by default + [11.3]='php8.4' + [11.2]='php8.4' + [10.6]='php8.4' + [10.5]='php8.4' # https://www.drupal.org/docs/system-requirements/php-requirements ) diff --git a/versions.json b/versions.json index 73e8207f..ba3c5793 100644 --- a/versions.json +++ b/versions.json @@ -1,5 +1,4 @@ { - "11.3-rc": null, "11.3": { "version": "11.3.2", "url": "https://ftp.drupal.org/files/projects/drupal-11.3.2.tar.gz", @@ -7,6 +6,7 @@ "date": 1767865697, "notes": "https://www.drupal.org/project/drupal/releases/11.3.2", "phpVersions": [ + "8.5", "8.4", "8.3" ], @@ -44,8 +44,6 @@ "version": "2" } }, - "11.1": null, - "10.6-rc": null, "10.6": { "version": "10.6.2", "url": "https://ftp.drupal.org/files/projects/drupal-10.6.2.tar.gz", @@ -89,6 +87,5 @@ "composer": { "version": "2" } - }, - "10.4": null + } } diff --git a/versions.sh b/versions.sh index 65cb47fc..17f05759 100755 --- a/versions.sh +++ b/versions.sh @@ -111,6 +111,10 @@ for version in "${versions[@]}"; do phpVersions: ( # https://www.drupal.org/docs/system-requirements/php-requirements [ + # Drupal 11.3+ supports PHP 8.5 + if env.version | IN("10.5", "10.6", "11.2") then empty else + "8.5" + end, # Drupal 11.1+ and 10.4+ support PHP 8.4 "8.4", # https://www.drupal.org/project/drupal/releases/10.2.0-rc1#php-deps From 7527e80907afcb640141a4ced604eb26bec3847e Mon Sep 17 00:00:00 2001 From: Jesper Noordsij Date: Tue, 6 Jan 2026 10:41:06 +0100 Subject: [PATCH 2/3] Drop PHP 8.4 for 10.6/11.3 Per upstream recommendation use PHP 8.4 --- 10.6/php8.3/apache-bookworm/Dockerfile | 99 -------------------------- 10.6/php8.3/apache-trixie/Dockerfile | 99 -------------------------- 10.6/php8.3/fpm-alpine3.22/Dockerfile | 81 --------------------- 10.6/php8.3/fpm-alpine3.23/Dockerfile | 81 --------------------- 10.6/php8.3/fpm-bookworm/Dockerfile | 92 ------------------------ 10.6/php8.3/fpm-trixie/Dockerfile | 92 ------------------------ 11.3/php8.3/apache-bookworm/Dockerfile | 99 -------------------------- 11.3/php8.3/apache-trixie/Dockerfile | 99 -------------------------- 11.3/php8.3/fpm-alpine3.22/Dockerfile | 81 --------------------- 11.3/php8.3/fpm-alpine3.23/Dockerfile | 81 --------------------- 11.3/php8.3/fpm-bookworm/Dockerfile | 92 ------------------------ 11.3/php8.3/fpm-trixie/Dockerfile | 92 ------------------------ 11.3/php8.5/apache-bookworm/Dockerfile | 4 +- 11.3/php8.5/apache-trixie/Dockerfile | 4 +- 11.3/php8.5/fpm-alpine3.22/Dockerfile | 4 +- 11.3/php8.5/fpm-alpine3.23/Dockerfile | 4 +- 11.3/php8.5/fpm-bookworm/Dockerfile | 4 +- 11.3/php8.5/fpm-trixie/Dockerfile | 4 +- versions.json | 6 +- versions.sh | 9 ++- 20 files changed, 20 insertions(+), 1107 deletions(-) delete mode 100644 10.6/php8.3/apache-bookworm/Dockerfile delete mode 100644 10.6/php8.3/apache-trixie/Dockerfile delete mode 100644 10.6/php8.3/fpm-alpine3.22/Dockerfile delete mode 100644 10.6/php8.3/fpm-alpine3.23/Dockerfile delete mode 100644 10.6/php8.3/fpm-bookworm/Dockerfile delete mode 100644 10.6/php8.3/fpm-trixie/Dockerfile delete mode 100644 11.3/php8.3/apache-bookworm/Dockerfile delete mode 100644 11.3/php8.3/apache-trixie/Dockerfile delete mode 100644 11.3/php8.3/fpm-alpine3.22/Dockerfile delete mode 100644 11.3/php8.3/fpm-alpine3.23/Dockerfile delete mode 100644 11.3/php8.3/fpm-bookworm/Dockerfile delete mode 100644 11.3/php8.3/fpm-trixie/Dockerfile diff --git a/10.6/php8.3/apache-bookworm/Dockerfile b/10.6/php8.3/apache-bookworm/Dockerfile deleted file mode 100644 index 253125bb..00000000 --- a/10.6/php8.3/apache-bookworm/Dockerfile +++ /dev/null @@ -1,99 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -# https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.3-apache-bookworm - -# install the PHP extensions we need -RUN set -eux; \ - \ - if command -v a2enmod; then \ -# https://github.com/drupal/drupal/blob/d91d8d0a6d3ffe5f0b6dde8c2fbe81404843edc5/.htaccess (references both mod_expires and mod_rewrite explicitly) - a2enmod expires rewrite; \ - fi; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - libfreetype6-dev \ - libjpeg-dev \ - libpng-dev \ - libpq-dev \ - libwebp-dev \ - libzip-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-freetype \ - --with-jpeg=/usr \ - --with-webp \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - gd \ - pdo_mysql \ - pdo_pgsql \ - zip \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -# see https://secure.php.net/manual/en/opcache.installation.php -RUN { \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=4000'; \ - echo 'opcache.revalidate_freq=60'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini - -# https://www.drupal.org/node/3298550 -# Drupal now recommends sites enable PHP output buffering by default, if PHP is run as a server module -# e.g. with Apache's mod_php -RUN { \ - echo 'output_buffering=true'; \ - } > /usr/local/etc/php/conf.d/docker-php-drupal-recommended.ini - -COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ - -# 2026-01-08: https://www.drupal.org/project/drupal/releases/10.6.2 -ENV DRUPAL_VERSION 10.6.2 - -# https://github.com/docker-library/drupal/pull/259 -# https://github.com/moby/buildkit/issues/4503 -# https://github.com/composer/composer/issues/11839 -# https://github.com/composer/composer/issues/11854 -# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 -ENV COMPOSER_ALLOW_SUPERUSER 1 - -WORKDIR /opt/drupal -RUN set -eux; \ - export COMPOSER_HOME="$(mktemp -d)"; \ - composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ -# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 - composer check-platform-reqs; \ - chown -R www-data:www-data web/sites web/modules web/themes; \ - rmdir /var/www/html; \ - ln -sf /opt/drupal/web /var/www/html; \ - # delete composer cache - rm -rf "$COMPOSER_HOME" - -ENV PATH=${PATH}:/opt/drupal/vendor/bin - -# vim:set ft=dockerfile: diff --git a/10.6/php8.3/apache-trixie/Dockerfile b/10.6/php8.3/apache-trixie/Dockerfile deleted file mode 100644 index f402f95c..00000000 --- a/10.6/php8.3/apache-trixie/Dockerfile +++ /dev/null @@ -1,99 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -# https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.3-apache-trixie - -# install the PHP extensions we need -RUN set -eux; \ - \ - if command -v a2enmod; then \ -# https://github.com/drupal/drupal/blob/d91d8d0a6d3ffe5f0b6dde8c2fbe81404843edc5/.htaccess (references both mod_expires and mod_rewrite explicitly) - a2enmod expires rewrite; \ - fi; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - libfreetype6-dev \ - libjpeg-dev \ - libpng-dev \ - libpq-dev \ - libwebp-dev \ - libzip-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-freetype \ - --with-jpeg=/usr \ - --with-webp \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - gd \ - pdo_mysql \ - pdo_pgsql \ - zip \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -# see https://secure.php.net/manual/en/opcache.installation.php -RUN { \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=4000'; \ - echo 'opcache.revalidate_freq=60'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini - -# https://www.drupal.org/node/3298550 -# Drupal now recommends sites enable PHP output buffering by default, if PHP is run as a server module -# e.g. with Apache's mod_php -RUN { \ - echo 'output_buffering=true'; \ - } > /usr/local/etc/php/conf.d/docker-php-drupal-recommended.ini - -COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ - -# 2026-01-08: https://www.drupal.org/project/drupal/releases/10.6.2 -ENV DRUPAL_VERSION 10.6.2 - -# https://github.com/docker-library/drupal/pull/259 -# https://github.com/moby/buildkit/issues/4503 -# https://github.com/composer/composer/issues/11839 -# https://github.com/composer/composer/issues/11854 -# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 -ENV COMPOSER_ALLOW_SUPERUSER 1 - -WORKDIR /opt/drupal -RUN set -eux; \ - export COMPOSER_HOME="$(mktemp -d)"; \ - composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ -# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 - composer check-platform-reqs; \ - chown -R www-data:www-data web/sites web/modules web/themes; \ - rmdir /var/www/html; \ - ln -sf /opt/drupal/web /var/www/html; \ - # delete composer cache - rm -rf "$COMPOSER_HOME" - -ENV PATH=${PATH}:/opt/drupal/vendor/bin - -# vim:set ft=dockerfile: diff --git a/10.6/php8.3/fpm-alpine3.22/Dockerfile b/10.6/php8.3/fpm-alpine3.22/Dockerfile deleted file mode 100644 index 25c85123..00000000 --- a/10.6/php8.3/fpm-alpine3.22/Dockerfile +++ /dev/null @@ -1,81 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -# https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.3-fpm-alpine3.22 - -# install the PHP extensions we need -RUN set -eux; \ - \ - apk add --no-cache --virtual .build-deps \ - coreutils \ - freetype-dev \ - libjpeg-turbo-dev \ - libpng-dev \ - libwebp-dev \ - libzip-dev \ -# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642 - postgresql-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-freetype \ - --with-jpeg=/usr/include \ - --with-webp \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - gd \ - pdo_mysql \ - pdo_pgsql \ - zip \ - ; \ - \ - runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )"; \ - apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps; \ - apk del --no-network .build-deps - -# set recommended PHP.ini settings -# see https://secure.php.net/manual/en/opcache.installation.php -RUN { \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=4000'; \ - echo 'opcache.revalidate_freq=60'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini - -COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ - -# 2026-01-08: https://www.drupal.org/project/drupal/releases/10.6.2 -ENV DRUPAL_VERSION 10.6.2 - -# https://github.com/docker-library/drupal/pull/259 -# https://github.com/moby/buildkit/issues/4503 -# https://github.com/composer/composer/issues/11839 -# https://github.com/composer/composer/issues/11854 -# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 -ENV COMPOSER_ALLOW_SUPERUSER 1 - -WORKDIR /opt/drupal -RUN set -eux; \ - export COMPOSER_HOME="$(mktemp -d)"; \ - composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ -# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 - composer check-platform-reqs; \ - chown -R www-data:www-data web/sites web/modules web/themes; \ - rmdir /var/www/html; \ - ln -sf /opt/drupal/web /var/www/html; \ - # delete composer cache - rm -rf "$COMPOSER_HOME" - -ENV PATH=${PATH}:/opt/drupal/vendor/bin - -# vim:set ft=dockerfile: diff --git a/10.6/php8.3/fpm-alpine3.23/Dockerfile b/10.6/php8.3/fpm-alpine3.23/Dockerfile deleted file mode 100644 index 2d624980..00000000 --- a/10.6/php8.3/fpm-alpine3.23/Dockerfile +++ /dev/null @@ -1,81 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -# https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.3-fpm-alpine3.23 - -# install the PHP extensions we need -RUN set -eux; \ - \ - apk add --no-cache --virtual .build-deps \ - coreutils \ - freetype-dev \ - libjpeg-turbo-dev \ - libpng-dev \ - libwebp-dev \ - libzip-dev \ -# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642 - postgresql-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-freetype \ - --with-jpeg=/usr/include \ - --with-webp \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - gd \ - pdo_mysql \ - pdo_pgsql \ - zip \ - ; \ - \ - runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )"; \ - apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps; \ - apk del --no-network .build-deps - -# set recommended PHP.ini settings -# see https://secure.php.net/manual/en/opcache.installation.php -RUN { \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=4000'; \ - echo 'opcache.revalidate_freq=60'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini - -COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ - -# 2026-01-08: https://www.drupal.org/project/drupal/releases/10.6.2 -ENV DRUPAL_VERSION 10.6.2 - -# https://github.com/docker-library/drupal/pull/259 -# https://github.com/moby/buildkit/issues/4503 -# https://github.com/composer/composer/issues/11839 -# https://github.com/composer/composer/issues/11854 -# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 -ENV COMPOSER_ALLOW_SUPERUSER 1 - -WORKDIR /opt/drupal -RUN set -eux; \ - export COMPOSER_HOME="$(mktemp -d)"; \ - composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ -# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 - composer check-platform-reqs; \ - chown -R www-data:www-data web/sites web/modules web/themes; \ - rmdir /var/www/html; \ - ln -sf /opt/drupal/web /var/www/html; \ - # delete composer cache - rm -rf "$COMPOSER_HOME" - -ENV PATH=${PATH}:/opt/drupal/vendor/bin - -# vim:set ft=dockerfile: diff --git a/10.6/php8.3/fpm-bookworm/Dockerfile b/10.6/php8.3/fpm-bookworm/Dockerfile deleted file mode 100644 index 440ea3d3..00000000 --- a/10.6/php8.3/fpm-bookworm/Dockerfile +++ /dev/null @@ -1,92 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -# https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.3-fpm-bookworm - -# install the PHP extensions we need -RUN set -eux; \ - \ - if command -v a2enmod; then \ -# https://github.com/drupal/drupal/blob/d91d8d0a6d3ffe5f0b6dde8c2fbe81404843edc5/.htaccess (references both mod_expires and mod_rewrite explicitly) - a2enmod expires rewrite; \ - fi; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - libfreetype6-dev \ - libjpeg-dev \ - libpng-dev \ - libpq-dev \ - libwebp-dev \ - libzip-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-freetype \ - --with-jpeg=/usr \ - --with-webp \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - gd \ - pdo_mysql \ - pdo_pgsql \ - zip \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -# see https://secure.php.net/manual/en/opcache.installation.php -RUN { \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=4000'; \ - echo 'opcache.revalidate_freq=60'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini - -COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ - -# 2026-01-08: https://www.drupal.org/project/drupal/releases/10.6.2 -ENV DRUPAL_VERSION 10.6.2 - -# https://github.com/docker-library/drupal/pull/259 -# https://github.com/moby/buildkit/issues/4503 -# https://github.com/composer/composer/issues/11839 -# https://github.com/composer/composer/issues/11854 -# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 -ENV COMPOSER_ALLOW_SUPERUSER 1 - -WORKDIR /opt/drupal -RUN set -eux; \ - export COMPOSER_HOME="$(mktemp -d)"; \ - composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ -# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 - composer check-platform-reqs; \ - chown -R www-data:www-data web/sites web/modules web/themes; \ - rmdir /var/www/html; \ - ln -sf /opt/drupal/web /var/www/html; \ - # delete composer cache - rm -rf "$COMPOSER_HOME" - -ENV PATH=${PATH}:/opt/drupal/vendor/bin - -# vim:set ft=dockerfile: diff --git a/10.6/php8.3/fpm-trixie/Dockerfile b/10.6/php8.3/fpm-trixie/Dockerfile deleted file mode 100644 index 802ff80b..00000000 --- a/10.6/php8.3/fpm-trixie/Dockerfile +++ /dev/null @@ -1,92 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -# https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.3-fpm-trixie - -# install the PHP extensions we need -RUN set -eux; \ - \ - if command -v a2enmod; then \ -# https://github.com/drupal/drupal/blob/d91d8d0a6d3ffe5f0b6dde8c2fbe81404843edc5/.htaccess (references both mod_expires and mod_rewrite explicitly) - a2enmod expires rewrite; \ - fi; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - libfreetype6-dev \ - libjpeg-dev \ - libpng-dev \ - libpq-dev \ - libwebp-dev \ - libzip-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-freetype \ - --with-jpeg=/usr \ - --with-webp \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - gd \ - pdo_mysql \ - pdo_pgsql \ - zip \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -# see https://secure.php.net/manual/en/opcache.installation.php -RUN { \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=4000'; \ - echo 'opcache.revalidate_freq=60'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini - -COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ - -# 2026-01-08: https://www.drupal.org/project/drupal/releases/10.6.2 -ENV DRUPAL_VERSION 10.6.2 - -# https://github.com/docker-library/drupal/pull/259 -# https://github.com/moby/buildkit/issues/4503 -# https://github.com/composer/composer/issues/11839 -# https://github.com/composer/composer/issues/11854 -# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 -ENV COMPOSER_ALLOW_SUPERUSER 1 - -WORKDIR /opt/drupal -RUN set -eux; \ - export COMPOSER_HOME="$(mktemp -d)"; \ - composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ -# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 - composer check-platform-reqs; \ - chown -R www-data:www-data web/sites web/modules web/themes; \ - rmdir /var/www/html; \ - ln -sf /opt/drupal/web /var/www/html; \ - # delete composer cache - rm -rf "$COMPOSER_HOME" - -ENV PATH=${PATH}:/opt/drupal/vendor/bin - -# vim:set ft=dockerfile: diff --git a/11.3/php8.3/apache-bookworm/Dockerfile b/11.3/php8.3/apache-bookworm/Dockerfile deleted file mode 100644 index d3e7ea82..00000000 --- a/11.3/php8.3/apache-bookworm/Dockerfile +++ /dev/null @@ -1,99 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -# https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.3-apache-bookworm - -# install the PHP extensions we need -RUN set -eux; \ - \ - if command -v a2enmod; then \ -# https://github.com/drupal/drupal/blob/d91d8d0a6d3ffe5f0b6dde8c2fbe81404843edc5/.htaccess (references both mod_expires and mod_rewrite explicitly) - a2enmod expires rewrite; \ - fi; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - libfreetype6-dev \ - libjpeg-dev \ - libpng-dev \ - libpq-dev \ - libwebp-dev \ - libzip-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-freetype \ - --with-jpeg=/usr \ - --with-webp \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - gd \ - pdo_mysql \ - pdo_pgsql \ - zip \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -# see https://secure.php.net/manual/en/opcache.installation.php -RUN { \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=4000'; \ - echo 'opcache.revalidate_freq=60'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini - -# https://www.drupal.org/node/3298550 -# Drupal now recommends sites enable PHP output buffering by default, if PHP is run as a server module -# e.g. with Apache's mod_php -RUN { \ - echo 'output_buffering=true'; \ - } > /usr/local/etc/php/conf.d/docker-php-drupal-recommended.ini - -COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ - -# 2026-01-08: https://www.drupal.org/project/drupal/releases/11.3.2 -ENV DRUPAL_VERSION 11.3.2 - -# https://github.com/docker-library/drupal/pull/259 -# https://github.com/moby/buildkit/issues/4503 -# https://github.com/composer/composer/issues/11839 -# https://github.com/composer/composer/issues/11854 -# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 -ENV COMPOSER_ALLOW_SUPERUSER 1 - -WORKDIR /opt/drupal -RUN set -eux; \ - export COMPOSER_HOME="$(mktemp -d)"; \ - composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ -# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 - composer check-platform-reqs; \ - chown -R www-data:www-data web/sites web/modules web/themes; \ - rmdir /var/www/html; \ - ln -sf /opt/drupal/web /var/www/html; \ - # delete composer cache - rm -rf "$COMPOSER_HOME" - -ENV PATH=${PATH}:/opt/drupal/vendor/bin - -# vim:set ft=dockerfile: diff --git a/11.3/php8.3/apache-trixie/Dockerfile b/11.3/php8.3/apache-trixie/Dockerfile deleted file mode 100644 index 7e34ac89..00000000 --- a/11.3/php8.3/apache-trixie/Dockerfile +++ /dev/null @@ -1,99 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -# https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.3-apache-trixie - -# install the PHP extensions we need -RUN set -eux; \ - \ - if command -v a2enmod; then \ -# https://github.com/drupal/drupal/blob/d91d8d0a6d3ffe5f0b6dde8c2fbe81404843edc5/.htaccess (references both mod_expires and mod_rewrite explicitly) - a2enmod expires rewrite; \ - fi; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - libfreetype6-dev \ - libjpeg-dev \ - libpng-dev \ - libpq-dev \ - libwebp-dev \ - libzip-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-freetype \ - --with-jpeg=/usr \ - --with-webp \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - gd \ - pdo_mysql \ - pdo_pgsql \ - zip \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -# see https://secure.php.net/manual/en/opcache.installation.php -RUN { \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=4000'; \ - echo 'opcache.revalidate_freq=60'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini - -# https://www.drupal.org/node/3298550 -# Drupal now recommends sites enable PHP output buffering by default, if PHP is run as a server module -# e.g. with Apache's mod_php -RUN { \ - echo 'output_buffering=true'; \ - } > /usr/local/etc/php/conf.d/docker-php-drupal-recommended.ini - -COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ - -# 2026-01-08: https://www.drupal.org/project/drupal/releases/11.3.2 -ENV DRUPAL_VERSION 11.3.2 - -# https://github.com/docker-library/drupal/pull/259 -# https://github.com/moby/buildkit/issues/4503 -# https://github.com/composer/composer/issues/11839 -# https://github.com/composer/composer/issues/11854 -# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 -ENV COMPOSER_ALLOW_SUPERUSER 1 - -WORKDIR /opt/drupal -RUN set -eux; \ - export COMPOSER_HOME="$(mktemp -d)"; \ - composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ -# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 - composer check-platform-reqs; \ - chown -R www-data:www-data web/sites web/modules web/themes; \ - rmdir /var/www/html; \ - ln -sf /opt/drupal/web /var/www/html; \ - # delete composer cache - rm -rf "$COMPOSER_HOME" - -ENV PATH=${PATH}:/opt/drupal/vendor/bin - -# vim:set ft=dockerfile: diff --git a/11.3/php8.3/fpm-alpine3.22/Dockerfile b/11.3/php8.3/fpm-alpine3.22/Dockerfile deleted file mode 100644 index a8fb007c..00000000 --- a/11.3/php8.3/fpm-alpine3.22/Dockerfile +++ /dev/null @@ -1,81 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -# https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.3-fpm-alpine3.22 - -# install the PHP extensions we need -RUN set -eux; \ - \ - apk add --no-cache --virtual .build-deps \ - coreutils \ - freetype-dev \ - libjpeg-turbo-dev \ - libpng-dev \ - libwebp-dev \ - libzip-dev \ -# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642 - postgresql-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-freetype \ - --with-jpeg=/usr/include \ - --with-webp \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - gd \ - pdo_mysql \ - pdo_pgsql \ - zip \ - ; \ - \ - runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )"; \ - apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps; \ - apk del --no-network .build-deps - -# set recommended PHP.ini settings -# see https://secure.php.net/manual/en/opcache.installation.php -RUN { \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=4000'; \ - echo 'opcache.revalidate_freq=60'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini - -COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ - -# 2026-01-08: https://www.drupal.org/project/drupal/releases/11.3.2 -ENV DRUPAL_VERSION 11.3.2 - -# https://github.com/docker-library/drupal/pull/259 -# https://github.com/moby/buildkit/issues/4503 -# https://github.com/composer/composer/issues/11839 -# https://github.com/composer/composer/issues/11854 -# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 -ENV COMPOSER_ALLOW_SUPERUSER 1 - -WORKDIR /opt/drupal -RUN set -eux; \ - export COMPOSER_HOME="$(mktemp -d)"; \ - composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ -# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 - composer check-platform-reqs; \ - chown -R www-data:www-data web/sites web/modules web/themes; \ - rmdir /var/www/html; \ - ln -sf /opt/drupal/web /var/www/html; \ - # delete composer cache - rm -rf "$COMPOSER_HOME" - -ENV PATH=${PATH}:/opt/drupal/vendor/bin - -# vim:set ft=dockerfile: diff --git a/11.3/php8.3/fpm-alpine3.23/Dockerfile b/11.3/php8.3/fpm-alpine3.23/Dockerfile deleted file mode 100644 index bb3025a4..00000000 --- a/11.3/php8.3/fpm-alpine3.23/Dockerfile +++ /dev/null @@ -1,81 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -# https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.3-fpm-alpine3.23 - -# install the PHP extensions we need -RUN set -eux; \ - \ - apk add --no-cache --virtual .build-deps \ - coreutils \ - freetype-dev \ - libjpeg-turbo-dev \ - libpng-dev \ - libwebp-dev \ - libzip-dev \ -# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642 - postgresql-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-freetype \ - --with-jpeg=/usr/include \ - --with-webp \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - gd \ - pdo_mysql \ - pdo_pgsql \ - zip \ - ; \ - \ - runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )"; \ - apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps; \ - apk del --no-network .build-deps - -# set recommended PHP.ini settings -# see https://secure.php.net/manual/en/opcache.installation.php -RUN { \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=4000'; \ - echo 'opcache.revalidate_freq=60'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini - -COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ - -# 2026-01-08: https://www.drupal.org/project/drupal/releases/11.3.2 -ENV DRUPAL_VERSION 11.3.2 - -# https://github.com/docker-library/drupal/pull/259 -# https://github.com/moby/buildkit/issues/4503 -# https://github.com/composer/composer/issues/11839 -# https://github.com/composer/composer/issues/11854 -# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 -ENV COMPOSER_ALLOW_SUPERUSER 1 - -WORKDIR /opt/drupal -RUN set -eux; \ - export COMPOSER_HOME="$(mktemp -d)"; \ - composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ -# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 - composer check-platform-reqs; \ - chown -R www-data:www-data web/sites web/modules web/themes; \ - rmdir /var/www/html; \ - ln -sf /opt/drupal/web /var/www/html; \ - # delete composer cache - rm -rf "$COMPOSER_HOME" - -ENV PATH=${PATH}:/opt/drupal/vendor/bin - -# vim:set ft=dockerfile: diff --git a/11.3/php8.3/fpm-bookworm/Dockerfile b/11.3/php8.3/fpm-bookworm/Dockerfile deleted file mode 100644 index 63ce592c..00000000 --- a/11.3/php8.3/fpm-bookworm/Dockerfile +++ /dev/null @@ -1,92 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -# https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.3-fpm-bookworm - -# install the PHP extensions we need -RUN set -eux; \ - \ - if command -v a2enmod; then \ -# https://github.com/drupal/drupal/blob/d91d8d0a6d3ffe5f0b6dde8c2fbe81404843edc5/.htaccess (references both mod_expires and mod_rewrite explicitly) - a2enmod expires rewrite; \ - fi; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - libfreetype6-dev \ - libjpeg-dev \ - libpng-dev \ - libpq-dev \ - libwebp-dev \ - libzip-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-freetype \ - --with-jpeg=/usr \ - --with-webp \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - gd \ - pdo_mysql \ - pdo_pgsql \ - zip \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -# see https://secure.php.net/manual/en/opcache.installation.php -RUN { \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=4000'; \ - echo 'opcache.revalidate_freq=60'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini - -COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ - -# 2026-01-08: https://www.drupal.org/project/drupal/releases/11.3.2 -ENV DRUPAL_VERSION 11.3.2 - -# https://github.com/docker-library/drupal/pull/259 -# https://github.com/moby/buildkit/issues/4503 -# https://github.com/composer/composer/issues/11839 -# https://github.com/composer/composer/issues/11854 -# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 -ENV COMPOSER_ALLOW_SUPERUSER 1 - -WORKDIR /opt/drupal -RUN set -eux; \ - export COMPOSER_HOME="$(mktemp -d)"; \ - composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ -# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 - composer check-platform-reqs; \ - chown -R www-data:www-data web/sites web/modules web/themes; \ - rmdir /var/www/html; \ - ln -sf /opt/drupal/web /var/www/html; \ - # delete composer cache - rm -rf "$COMPOSER_HOME" - -ENV PATH=${PATH}:/opt/drupal/vendor/bin - -# vim:set ft=dockerfile: diff --git a/11.3/php8.3/fpm-trixie/Dockerfile b/11.3/php8.3/fpm-trixie/Dockerfile deleted file mode 100644 index 60a256b9..00000000 --- a/11.3/php8.3/fpm-trixie/Dockerfile +++ /dev/null @@ -1,92 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -# https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.3-fpm-trixie - -# install the PHP extensions we need -RUN set -eux; \ - \ - if command -v a2enmod; then \ -# https://github.com/drupal/drupal/blob/d91d8d0a6d3ffe5f0b6dde8c2fbe81404843edc5/.htaccess (references both mod_expires and mod_rewrite explicitly) - a2enmod expires rewrite; \ - fi; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - libfreetype6-dev \ - libjpeg-dev \ - libpng-dev \ - libpq-dev \ - libwebp-dev \ - libzip-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-freetype \ - --with-jpeg=/usr \ - --with-webp \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - gd \ - pdo_mysql \ - pdo_pgsql \ - zip \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -# see https://secure.php.net/manual/en/opcache.installation.php -RUN { \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=4000'; \ - echo 'opcache.revalidate_freq=60'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini - -COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ - -# 2026-01-08: https://www.drupal.org/project/drupal/releases/11.3.2 -ENV DRUPAL_VERSION 11.3.2 - -# https://github.com/docker-library/drupal/pull/259 -# https://github.com/moby/buildkit/issues/4503 -# https://github.com/composer/composer/issues/11839 -# https://github.com/composer/composer/issues/11854 -# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 -ENV COMPOSER_ALLOW_SUPERUSER 1 - -WORKDIR /opt/drupal -RUN set -eux; \ - export COMPOSER_HOME="$(mktemp -d)"; \ - composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ -# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 - composer check-platform-reqs; \ - chown -R www-data:www-data web/sites web/modules web/themes; \ - rmdir /var/www/html; \ - ln -sf /opt/drupal/web /var/www/html; \ - # delete composer cache - rm -rf "$COMPOSER_HOME" - -ENV PATH=${PATH}:/opt/drupal/vendor/bin - -# vim:set ft=dockerfile: diff --git a/11.3/php8.5/apache-bookworm/Dockerfile b/11.3/php8.5/apache-bookworm/Dockerfile index f42a0fdd..bc116d74 100644 --- a/11.3/php8.5/apache-bookworm/Dockerfile +++ b/11.3/php8.5/apache-bookworm/Dockerfile @@ -72,8 +72,8 @@ RUN { \ COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ -# 2025-12-18: https://www.drupal.org/project/drupal/releases/11.3.1 -ENV DRUPAL_VERSION 11.3.1 +# 2026-01-08: https://www.drupal.org/project/drupal/releases/11.3.2 +ENV DRUPAL_VERSION 11.3.2 # https://github.com/docker-library/drupal/pull/259 # https://github.com/moby/buildkit/issues/4503 diff --git a/11.3/php8.5/apache-trixie/Dockerfile b/11.3/php8.5/apache-trixie/Dockerfile index 8f6193e9..9e2fe8e0 100644 --- a/11.3/php8.5/apache-trixie/Dockerfile +++ b/11.3/php8.5/apache-trixie/Dockerfile @@ -72,8 +72,8 @@ RUN { \ COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ -# 2025-12-18: https://www.drupal.org/project/drupal/releases/11.3.1 -ENV DRUPAL_VERSION 11.3.1 +# 2026-01-08: https://www.drupal.org/project/drupal/releases/11.3.2 +ENV DRUPAL_VERSION 11.3.2 # https://github.com/docker-library/drupal/pull/259 # https://github.com/moby/buildkit/issues/4503 diff --git a/11.3/php8.5/fpm-alpine3.22/Dockerfile b/11.3/php8.5/fpm-alpine3.22/Dockerfile index 319ba0fe..013a7893 100644 --- a/11.3/php8.5/fpm-alpine3.22/Dockerfile +++ b/11.3/php8.5/fpm-alpine3.22/Dockerfile @@ -54,8 +54,8 @@ RUN { \ COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ -# 2025-12-18: https://www.drupal.org/project/drupal/releases/11.3.1 -ENV DRUPAL_VERSION 11.3.1 +# 2026-01-08: https://www.drupal.org/project/drupal/releases/11.3.2 +ENV DRUPAL_VERSION 11.3.2 # https://github.com/docker-library/drupal/pull/259 # https://github.com/moby/buildkit/issues/4503 diff --git a/11.3/php8.5/fpm-alpine3.23/Dockerfile b/11.3/php8.5/fpm-alpine3.23/Dockerfile index 29e58392..4d72572c 100644 --- a/11.3/php8.5/fpm-alpine3.23/Dockerfile +++ b/11.3/php8.5/fpm-alpine3.23/Dockerfile @@ -54,8 +54,8 @@ RUN { \ COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ -# 2025-12-18: https://www.drupal.org/project/drupal/releases/11.3.1 -ENV DRUPAL_VERSION 11.3.1 +# 2026-01-08: https://www.drupal.org/project/drupal/releases/11.3.2 +ENV DRUPAL_VERSION 11.3.2 # https://github.com/docker-library/drupal/pull/259 # https://github.com/moby/buildkit/issues/4503 diff --git a/11.3/php8.5/fpm-bookworm/Dockerfile b/11.3/php8.5/fpm-bookworm/Dockerfile index b54ca1b4..b1b38a13 100644 --- a/11.3/php8.5/fpm-bookworm/Dockerfile +++ b/11.3/php8.5/fpm-bookworm/Dockerfile @@ -65,8 +65,8 @@ RUN { \ COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ -# 2025-12-18: https://www.drupal.org/project/drupal/releases/11.3.1 -ENV DRUPAL_VERSION 11.3.1 +# 2026-01-08: https://www.drupal.org/project/drupal/releases/11.3.2 +ENV DRUPAL_VERSION 11.3.2 # https://github.com/docker-library/drupal/pull/259 # https://github.com/moby/buildkit/issues/4503 diff --git a/11.3/php8.5/fpm-trixie/Dockerfile b/11.3/php8.5/fpm-trixie/Dockerfile index 5f2c7f9e..0152590c 100644 --- a/11.3/php8.5/fpm-trixie/Dockerfile +++ b/11.3/php8.5/fpm-trixie/Dockerfile @@ -65,8 +65,8 @@ RUN { \ COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ -# 2025-12-18: https://www.drupal.org/project/drupal/releases/11.3.1 -ENV DRUPAL_VERSION 11.3.1 +# 2026-01-08: https://www.drupal.org/project/drupal/releases/11.3.2 +ENV DRUPAL_VERSION 11.3.2 # https://github.com/docker-library/drupal/pull/259 # https://github.com/moby/buildkit/issues/4503 diff --git a/versions.json b/versions.json index ba3c5793..fa5f49c9 100644 --- a/versions.json +++ b/versions.json @@ -7,8 +7,7 @@ "notes": "https://www.drupal.org/project/drupal/releases/11.3.2", "phpVersions": [ "8.5", - "8.4", - "8.3" + "8.4" ], "variants": [ "apache-trixie", @@ -51,8 +50,7 @@ "date": 1767866420, "notes": "https://www.drupal.org/project/drupal/releases/10.6.2", "phpVersions": [ - "8.4", - "8.3" + "8.4" ], "variants": [ "apache-trixie", diff --git a/versions.sh b/versions.sh index 17f05759..fab75fe8 100755 --- a/versions.sh +++ b/versions.sh @@ -117,9 +117,12 @@ for version in "${versions[@]}"; do end, # Drupal 11.1+ and 10.4+ support PHP 8.4 "8.4", - # https://www.drupal.org/project/drupal/releases/10.2.0-rc1#php-deps - # Drupal supports PHP 8.3 and recommends at least PHP 8.2. - "8.3", + # Drupal 11.3+ and 10.6+ recommend PHP 8.4 + # https://www.drupal.org/project/drupal/releases/10.6.0#platform + # https://www.drupal.org/project/drupal/releases/11.3.0#platform + if env.version | IN("10.5", "11.2") then + "8.3" + else empty end, # https://www.drupal.org/docs/system-requirements/php-requirements empty ] From 1eb8aca578c3dd9814712498a3cb70847cef2de0 Mon Sep 17 00:00:00 2001 From: Jesper Noordsij Date: Thu, 8 Jan 2026 09:45:46 +0100 Subject: [PATCH 3/3] Restore Drupal 10.6 + PHP 8.3 variant Also clear some old PHP version code remnant in versions.sh Co-authored-by: Joseph Ferguson --- 10.6/php8.3/apache-bookworm/Dockerfile | 99 ++++++++++++++++++++++++++ 10.6/php8.3/apache-trixie/Dockerfile | 99 ++++++++++++++++++++++++++ 10.6/php8.3/fpm-alpine3.22/Dockerfile | 81 +++++++++++++++++++++ 10.6/php8.3/fpm-alpine3.23/Dockerfile | 81 +++++++++++++++++++++ 10.6/php8.3/fpm-bookworm/Dockerfile | 92 ++++++++++++++++++++++++ 10.6/php8.3/fpm-trixie/Dockerfile | 92 ++++++++++++++++++++++++ versions.json | 3 +- versions.sh | 9 ++- 8 files changed, 550 insertions(+), 6 deletions(-) create mode 100644 10.6/php8.3/apache-bookworm/Dockerfile create mode 100644 10.6/php8.3/apache-trixie/Dockerfile create mode 100644 10.6/php8.3/fpm-alpine3.22/Dockerfile create mode 100644 10.6/php8.3/fpm-alpine3.23/Dockerfile create mode 100644 10.6/php8.3/fpm-bookworm/Dockerfile create mode 100644 10.6/php8.3/fpm-trixie/Dockerfile diff --git a/10.6/php8.3/apache-bookworm/Dockerfile b/10.6/php8.3/apache-bookworm/Dockerfile new file mode 100644 index 00000000..253125bb --- /dev/null +++ b/10.6/php8.3/apache-bookworm/Dockerfile @@ -0,0 +1,99 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.3-apache-bookworm + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ +# https://github.com/drupal/drupal/blob/d91d8d0a6d3ffe5f0b6dde8c2fbe81404843edc5/.htaccess (references both mod_expires and mod_rewrite explicitly) + a2enmod expires rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# https://www.drupal.org/node/3298550 +# Drupal now recommends sites enable PHP output buffering by default, if PHP is run as a server module +# e.g. with Apache's mod_php +RUN { \ + echo 'output_buffering=true'; \ + } > /usr/local/etc/php/conf.d/docker-php-drupal-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# 2026-01-08: https://www.drupal.org/project/drupal/releases/10.6.2 +ENV DRUPAL_VERSION 10.6.2 + +# https://github.com/docker-library/drupal/pull/259 +# https://github.com/moby/buildkit/issues/4503 +# https://github.com/composer/composer/issues/11839 +# https://github.com/composer/composer/issues/11854 +# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 +ENV COMPOSER_ALLOW_SUPERUSER 1 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ +# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 + composer check-platform-reqs; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/10.6/php8.3/apache-trixie/Dockerfile b/10.6/php8.3/apache-trixie/Dockerfile new file mode 100644 index 00000000..f402f95c --- /dev/null +++ b/10.6/php8.3/apache-trixie/Dockerfile @@ -0,0 +1,99 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.3-apache-trixie + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ +# https://github.com/drupal/drupal/blob/d91d8d0a6d3ffe5f0b6dde8c2fbe81404843edc5/.htaccess (references both mod_expires and mod_rewrite explicitly) + a2enmod expires rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# https://www.drupal.org/node/3298550 +# Drupal now recommends sites enable PHP output buffering by default, if PHP is run as a server module +# e.g. with Apache's mod_php +RUN { \ + echo 'output_buffering=true'; \ + } > /usr/local/etc/php/conf.d/docker-php-drupal-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# 2026-01-08: https://www.drupal.org/project/drupal/releases/10.6.2 +ENV DRUPAL_VERSION 10.6.2 + +# https://github.com/docker-library/drupal/pull/259 +# https://github.com/moby/buildkit/issues/4503 +# https://github.com/composer/composer/issues/11839 +# https://github.com/composer/composer/issues/11854 +# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 +ENV COMPOSER_ALLOW_SUPERUSER 1 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ +# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 + composer check-platform-reqs; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/10.6/php8.3/fpm-alpine3.22/Dockerfile b/10.6/php8.3/fpm-alpine3.22/Dockerfile new file mode 100644 index 00000000..25c85123 --- /dev/null +++ b/10.6/php8.3/fpm-alpine3.22/Dockerfile @@ -0,0 +1,81 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.3-fpm-alpine3.22 + +# install the PHP extensions we need +RUN set -eux; \ + \ + apk add --no-cache --virtual .build-deps \ + coreutils \ + freetype-dev \ + libjpeg-turbo-dev \ + libpng-dev \ + libwebp-dev \ + libzip-dev \ +# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642 + postgresql-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr/include \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps; \ + apk del --no-network .build-deps + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# 2026-01-08: https://www.drupal.org/project/drupal/releases/10.6.2 +ENV DRUPAL_VERSION 10.6.2 + +# https://github.com/docker-library/drupal/pull/259 +# https://github.com/moby/buildkit/issues/4503 +# https://github.com/composer/composer/issues/11839 +# https://github.com/composer/composer/issues/11854 +# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 +ENV COMPOSER_ALLOW_SUPERUSER 1 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ +# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 + composer check-platform-reqs; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/10.6/php8.3/fpm-alpine3.23/Dockerfile b/10.6/php8.3/fpm-alpine3.23/Dockerfile new file mode 100644 index 00000000..2d624980 --- /dev/null +++ b/10.6/php8.3/fpm-alpine3.23/Dockerfile @@ -0,0 +1,81 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.3-fpm-alpine3.23 + +# install the PHP extensions we need +RUN set -eux; \ + \ + apk add --no-cache --virtual .build-deps \ + coreutils \ + freetype-dev \ + libjpeg-turbo-dev \ + libpng-dev \ + libwebp-dev \ + libzip-dev \ +# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642 + postgresql-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr/include \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps; \ + apk del --no-network .build-deps + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# 2026-01-08: https://www.drupal.org/project/drupal/releases/10.6.2 +ENV DRUPAL_VERSION 10.6.2 + +# https://github.com/docker-library/drupal/pull/259 +# https://github.com/moby/buildkit/issues/4503 +# https://github.com/composer/composer/issues/11839 +# https://github.com/composer/composer/issues/11854 +# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 +ENV COMPOSER_ALLOW_SUPERUSER 1 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ +# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 + composer check-platform-reqs; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/10.6/php8.3/fpm-bookworm/Dockerfile b/10.6/php8.3/fpm-bookworm/Dockerfile new file mode 100644 index 00000000..440ea3d3 --- /dev/null +++ b/10.6/php8.3/fpm-bookworm/Dockerfile @@ -0,0 +1,92 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.3-fpm-bookworm + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ +# https://github.com/drupal/drupal/blob/d91d8d0a6d3ffe5f0b6dde8c2fbe81404843edc5/.htaccess (references both mod_expires and mod_rewrite explicitly) + a2enmod expires rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# 2026-01-08: https://www.drupal.org/project/drupal/releases/10.6.2 +ENV DRUPAL_VERSION 10.6.2 + +# https://github.com/docker-library/drupal/pull/259 +# https://github.com/moby/buildkit/issues/4503 +# https://github.com/composer/composer/issues/11839 +# https://github.com/composer/composer/issues/11854 +# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 +ENV COMPOSER_ALLOW_SUPERUSER 1 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ +# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 + composer check-platform-reqs; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/10.6/php8.3/fpm-trixie/Dockerfile b/10.6/php8.3/fpm-trixie/Dockerfile new file mode 100644 index 00000000..802ff80b --- /dev/null +++ b/10.6/php8.3/fpm-trixie/Dockerfile @@ -0,0 +1,92 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.3-fpm-trixie + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ +# https://github.com/drupal/drupal/blob/d91d8d0a6d3ffe5f0b6dde8c2fbe81404843edc5/.htaccess (references both mod_expires and mod_rewrite explicitly) + a2enmod expires rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# 2026-01-08: https://www.drupal.org/project/drupal/releases/10.6.2 +ENV DRUPAL_VERSION 10.6.2 + +# https://github.com/docker-library/drupal/pull/259 +# https://github.com/moby/buildkit/issues/4503 +# https://github.com/composer/composer/issues/11839 +# https://github.com/composer/composer/issues/11854 +# https://github.com/composer/composer/blob/94fe2945456df51e122a492b8d14ac4b54c1d2ce/src/Composer/Console/Application.php#L217-L218 +ENV COMPOSER_ALLOW_SUPERUSER 1 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ +# https://github.com/docker-library/drupal/pull/266#issuecomment-2273985526 + composer check-platform-reqs; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/versions.json b/versions.json index fa5f49c9..b1a535af 100644 --- a/versions.json +++ b/versions.json @@ -50,7 +50,8 @@ "date": 1767866420, "notes": "https://www.drupal.org/project/drupal/releases/10.6.2", "phpVersions": [ - "8.4" + "8.4", + "8.3" ], "variants": [ "apache-trixie", diff --git a/versions.sh b/versions.sh index fab75fe8..35cfd266 100755 --- a/versions.sh +++ b/versions.sh @@ -117,14 +117,13 @@ for version in "${versions[@]}"; do end, # Drupal 11.1+ and 10.4+ support PHP 8.4 "8.4", - # Drupal 11.3+ and 10.6+ recommend PHP 8.4 + # Drupal 11.3+ and 10.6+ recommend PHP 8.4; keep 8.3 for 'existing' builds + # https://github.com/docker-library/drupal/pull/299 # https://www.drupal.org/project/drupal/releases/10.6.0#platform # https://www.drupal.org/project/drupal/releases/11.3.0#platform - if env.version | IN("10.5", "11.2") then + if env.version | IN("10.5", "10.6", "11.2") then "8.3" - else empty end, - # https://www.drupal.org/docs/system-requirements/php-requirements - empty + else empty end ] ), variants: [