From 857a6a782bbfcd8b05099dd149f5820621ad9141 Mon Sep 17 00:00:00 2001 From: Pascal Birchler Date: Mon, 6 Oct 2025 12:51:56 +0200 Subject: [PATCH 1/4] Add PHP 8.5 RC support --- beta/php8.5-rc/apache/Dockerfile | 171 ++++++++++++++++++ beta/php8.5-rc/apache/docker-entrypoint.sh | 99 ++++++++++ beta/php8.5-rc/apache/wp-config-docker.php | 139 ++++++++++++++ beta/php8.5-rc/fpm-alpine/Dockerfile | 148 +++++++++++++++ .../php8.5-rc/fpm-alpine/docker-entrypoint.sh | 99 ++++++++++ .../php8.5-rc/fpm-alpine/wp-config-docker.php | 139 ++++++++++++++ beta/php8.5-rc/fpm/Dockerfile | 152 ++++++++++++++++ beta/php8.5-rc/fpm/docker-entrypoint.sh | 99 ++++++++++ beta/php8.5-rc/fpm/wp-config-docker.php | 139 ++++++++++++++ cli/php8.5-rc/alpine/Dockerfile | 132 ++++++++++++++ cli/php8.5-rc/alpine/docker-entrypoint.sh | 11 ++ latest/php8.5-rc/apache/Dockerfile | 171 ++++++++++++++++++ latest/php8.5-rc/apache/docker-entrypoint.sh | 99 ++++++++++ latest/php8.5-rc/apache/wp-config-docker.php | 139 ++++++++++++++ latest/php8.5-rc/fpm-alpine/Dockerfile | 148 +++++++++++++++ .../php8.5-rc/fpm-alpine/docker-entrypoint.sh | 99 ++++++++++ .../php8.5-rc/fpm-alpine/wp-config-docker.php | 139 ++++++++++++++ latest/php8.5-rc/fpm/Dockerfile | 152 ++++++++++++++++ latest/php8.5-rc/fpm/docker-entrypoint.sh | 99 ++++++++++ latest/php8.5-rc/fpm/wp-config-docker.php | 139 ++++++++++++++ versions.json | 9 +- versions.sh | 2 +- 22 files changed, 2520 insertions(+), 4 deletions(-) create mode 100644 beta/php8.5-rc/apache/Dockerfile create mode 100755 beta/php8.5-rc/apache/docker-entrypoint.sh create mode 100644 beta/php8.5-rc/apache/wp-config-docker.php create mode 100644 beta/php8.5-rc/fpm-alpine/Dockerfile create mode 100755 beta/php8.5-rc/fpm-alpine/docker-entrypoint.sh create mode 100644 beta/php8.5-rc/fpm-alpine/wp-config-docker.php create mode 100644 beta/php8.5-rc/fpm/Dockerfile create mode 100755 beta/php8.5-rc/fpm/docker-entrypoint.sh create mode 100644 beta/php8.5-rc/fpm/wp-config-docker.php create mode 100644 cli/php8.5-rc/alpine/Dockerfile create mode 100755 cli/php8.5-rc/alpine/docker-entrypoint.sh create mode 100644 latest/php8.5-rc/apache/Dockerfile create mode 100755 latest/php8.5-rc/apache/docker-entrypoint.sh create mode 100644 latest/php8.5-rc/apache/wp-config-docker.php create mode 100644 latest/php8.5-rc/fpm-alpine/Dockerfile create mode 100755 latest/php8.5-rc/fpm-alpine/docker-entrypoint.sh create mode 100644 latest/php8.5-rc/fpm-alpine/wp-config-docker.php create mode 100644 latest/php8.5-rc/fpm/Dockerfile create mode 100755 latest/php8.5-rc/fpm/docker-entrypoint.sh create mode 100644 latest/php8.5-rc/fpm/wp-config-docker.php diff --git a/beta/php8.5-rc/apache/Dockerfile b/beta/php8.5-rc/apache/Dockerfile new file mode 100644 index 0000000000..03146f02fa --- /dev/null +++ b/beta/php8.5-rc/apache/Dockerfile @@ -0,0 +1,171 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +FROM php:8.5-rc-apache + +# persistent dependencies +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ +# Ghostscript is required for rendering PDF previews + ghostscript \ + ; \ + rm -rf /var/lib/apt/lists/* + +# install the PHP extensions we need (https://make.wordpress.org/hosting/handbook/handbook/server-environment/#php-extensions) +RUN set -ex; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libavif-dev \ + libfreetype6-dev \ + libicu-dev \ + libjpeg-dev \ + libmagickwand-dev \ + libpng-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-avif \ + --with-freetype \ + --with-jpeg \ + --with-webp \ + ; \ + docker-php-ext-install -j "$(nproc)" \ + bcmath \ + exif \ + gd \ + intl \ + mysqli \ + zip \ + ; \ +# https://pecl.php.net/package/imagick + pecl install imagick-3.8.0; \ + docker-php-ext-enable imagick; \ + rm -r /tmp/pear; \ + \ +# some misbehaving extensions end up outputting to stdout 🙈 (https://github.com/docker-library/wordpress/issues/669#issuecomment-993945967) + out="$(php -r 'exit(0);')"; \ + [ -z "$out" ]; \ + err="$(php -r 'exit(0);' 3>&1 1>&2 2>&3)"; \ + [ -z "$err" ]; \ + \ + extDir="$(php -r 'echo ini_get("extension_dir");')"; \ + [ -d "$extDir" ]; \ +# 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 "$extDir"/*.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 --search \ + | 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/*; \ + \ + ! { ldd "$extDir"/*.so | grep 'not found'; }; \ +# check for output like "PHP Warning: PHP Startup: Unable to load dynamic library 'foo' (tried: ...) + err="$(php --version 3>&1 1>&2 2>&3)"; \ + [ -z "$err" ] + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN set -eux; \ + docker-php-ext-enable opcache; \ + { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=2'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini +# https://wordpress.org/support/article/editing-wp-config-php/#configure-error-logging +RUN { \ +# https://www.php.net/manual/en/errorfunc.constants.php +# https://github.com/docker-library/wordpress/issues/420#issuecomment-517839670 + echo 'error_reporting = E_ERROR | E_WARNING | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_RECOVERABLE_ERROR'; \ + echo 'display_errors = Off'; \ + echo 'display_startup_errors = Off'; \ + echo 'log_errors = On'; \ + echo 'error_log = /dev/stderr'; \ + echo 'log_errors_max_len = 1024'; \ + echo 'ignore_repeated_errors = On'; \ + echo 'ignore_repeated_source = Off'; \ + echo 'html_errors = Off'; \ + } > /usr/local/etc/php/conf.d/error-logging.ini + +RUN set -eux; \ + a2enmod rewrite expires; \ + \ +# https://httpd.apache.org/docs/2.4/mod/mod_remoteip.html + a2enmod remoteip; \ + { \ + echo 'RemoteIPHeader X-Forwarded-For'; \ +# these IP ranges are reserved for "private" use and should thus *usually* be safe inside Docker + echo 'RemoteIPInternalProxy 10.0.0.0/8'; \ + echo 'RemoteIPInternalProxy 172.16.0.0/12'; \ + echo 'RemoteIPInternalProxy 192.168.0.0/16'; \ + echo 'RemoteIPInternalProxy 169.254.0.0/16'; \ + echo 'RemoteIPInternalProxy 127.0.0.0/8'; \ + } > /etc/apache2/conf-available/remoteip.conf; \ + a2enconf remoteip; \ +# https://github.com/docker-library/wordpress/issues/383#issuecomment-507886512 +# (replace all instances of "%h" with "%a" in LogFormat) + find /etc/apache2 -type f -name '*.conf' -exec sed -ri 's/([[:space:]]*LogFormat[[:space:]]+"[^"]*)%h([^"]*")/\1%a\2/g' '{}' + + +RUN set -eux; \ + version='6.8.3'; \ + sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + \ + curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ + echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ + \ +# upstream tarballs include ./wordpress/ so this gives us /usr/src/wordpress + tar -xzf wordpress.tar.gz -C /usr/src/; \ + rm wordpress.tar.gz; \ + \ +# https://wordpress.org/support/article/htaccess/ + [ ! -e /usr/src/wordpress/.htaccess ]; \ + { \ + echo '# BEGIN WordPress'; \ + echo ''; \ + echo 'RewriteEngine On'; \ + echo 'RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]'; \ + echo 'RewriteBase /'; \ + echo 'RewriteRule ^index\.php$ - [L]'; \ + echo 'RewriteCond %{REQUEST_FILENAME} !-f'; \ + echo 'RewriteCond %{REQUEST_FILENAME} !-d'; \ + echo 'RewriteRule . /index.php [L]'; \ + echo ''; \ + echo '# END WordPress'; \ + } > /usr/src/wordpress/.htaccess; \ + \ + chown -R www-data:www-data /usr/src/wordpress; \ +# pre-create wp-content (and single-level children) for folks who want to bind-mount themes, etc so permissions are pre-created properly instead of root:root +# wp-content/cache: https://github.com/docker-library/wordpress/issues/534#issuecomment-705733507 + mkdir wp-content; \ + for dir in /usr/src/wordpress/wp-content/*/ cache; do \ + dir="$(basename "${dir%/}")"; \ + mkdir "wp-content/$dir"; \ + done; \ + chown -R www-data:www-data wp-content; \ + chmod -R 1777 wp-content + +VOLUME /var/www/html + +COPY --chown=www-data:www-data wp-config-docker.php /usr/src/wordpress/ +COPY docker-entrypoint.sh /usr/local/bin/ +# https://github.com/docker-library/wordpress/issues/969 +RUN ln -svfT docker-entrypoint.sh /usr/local/bin/docker-ensure-installed.sh + +ENTRYPOINT ["docker-entrypoint.sh"] +CMD ["apache2-foreground"] diff --git a/beta/php8.5-rc/apache/docker-entrypoint.sh b/beta/php8.5-rc/apache/docker-entrypoint.sh new file mode 100755 index 0000000000..dad730375c --- /dev/null +++ b/beta/php8.5-rc/apache/docker-entrypoint.sh @@ -0,0 +1,99 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +if [[ "${1-}" == apache2* ]] || [ "${1-}" = 'php-fpm' ] || { self="$(basename "$0")" && [ "$self" = 'docker-ensure-installed.sh' ]; }; then + uid="$(id -u)" + gid="$(id -g)" + if [ "$uid" = '0' ]; then + case "${1-}" in + apache2*) + user="${APACHE_RUN_USER:-www-data}" + group="${APACHE_RUN_GROUP:-www-data}" + + # strip off any '#' symbol ('#1000' is valid syntax for Apache) + pound='#' + user="${user#$pound}" + group="${group#$pound}" + ;; + *) # php-fpm + user='www-data' + group='www-data' + ;; + esac + else + user="$uid" + group="$gid" + fi + + if [ ! -e index.php ] && [ ! -e wp-includes/version.php ]; then + # if the directory exists and WordPress doesn't appear to be installed AND the permissions of it are root:root, let's chown it (likely a Docker-created directory) + if [ "$uid" = '0' ] && [ "$(stat -c '%u:%g' .)" = '0:0' ]; then + chown "$user:$group" . + fi + + echo >&2 "WordPress not found in $PWD - copying now..." + if [ -n "$(find -mindepth 1 -maxdepth 1 -not -name wp-content)" ]; then + echo >&2 "WARNING: $PWD is not empty! (copying anyhow)" + fi + sourceTarArgs=( + --create + --file - + --directory /usr/src/wordpress + --owner "$user" --group "$group" + ) + targetTarArgs=( + --extract + --file - + ) + if [ "$uid" != '0' ]; then + # avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted" + targetTarArgs+=( --no-overwrite-dir ) + fi + # loop over "pluggable" content in the source, and if it already exists in the destination, skip it + # https://github.com/docker-library/wordpress/issues/506 ("wp-content" persisted, "akismet" updated, WordPress container restarted/recreated, "akismet" downgraded) + for contentPath in \ + /usr/src/wordpress/.htaccess \ + /usr/src/wordpress/wp-content/*/*/ \ + ; do + contentPath="${contentPath%/}" + [ -e "$contentPath" ] || continue + contentPath="${contentPath#/usr/src/wordpress/}" # "wp-content/plugins/akismet", etc. + if [ -e "$PWD/$contentPath" ]; then + echo >&2 "WARNING: '$PWD/$contentPath' exists! (not copying the WordPress version)" + sourceTarArgs+=( --exclude "./$contentPath" ) + fi + done + tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}" + echo >&2 "Complete! WordPress has been successfully copied to $PWD" + fi + + wpEnvs=( "${!WORDPRESS_@}" ) + if [ ! -s wp-config.php ] && [ "${#wpEnvs[@]}" -gt 0 ]; then + for wpConfigDocker in \ + wp-config-docker.php \ + /usr/src/wordpress/wp-config-docker.php \ + ; do + if [ -s "$wpConfigDocker" ]; then + echo >&2 "No 'wp-config.php' found in $PWD, but 'WORDPRESS_...' variables supplied; copying '$wpConfigDocker' (${wpEnvs[*]})" + # using "awk" to replace all instances of "put your unique phrase here" with a properly unique string (for AUTH_KEY and friends to have safe defaults if they aren't specified with environment variables) + awk ' + /put your unique phrase here/ { + cmd = "head -c1m /dev/urandom | sha1sum | cut -d\\ -f1" + cmd | getline str + close(cmd) + gsub("put your unique phrase here", str) + } + { print } + ' "$wpConfigDocker" > wp-config.php + if [ "$uid" = '0' ]; then + # attempt to ensure that wp-config.php is owned by the run user + # could be on a filesystem that doesn't allow chown (like some NFS setups) + chown "$user:$group" wp-config.php || true + fi + break + fi + done + fi +fi + +exec "$@" diff --git a/beta/php8.5-rc/apache/wp-config-docker.php b/beta/php8.5-rc/apache/wp-config-docker.php new file mode 100644 index 0000000000..ada2ee3c9e --- /dev/null +++ b/beta/php8.5-rc/apache/wp-config-docker.php @@ -0,0 +1,139 @@ +&1 1>&2 2>&3)"; \ + [ -z "$err" ]; \ + \ + extDir="$(php -r 'echo ini_get("extension_dir");')"; \ + [ -d "$extDir" ]; \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive "$extDir" \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .wordpress-phpexts-rundeps $runDeps; \ + apk del --no-network .build-deps; \ + \ + ! { ldd "$extDir"/*.so | grep 'not found'; }; \ +# check for output like "PHP Warning: PHP Startup: Unable to load dynamic library 'foo' (tried: ...) + err="$(php --version 3>&1 1>&2 2>&3)"; \ + [ -z "$err" ] + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN set -eux; \ + docker-php-ext-enable opcache; \ + { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=2'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini +# https://wordpress.org/support/article/editing-wp-config-php/#configure-error-logging +RUN { \ +# https://www.php.net/manual/en/errorfunc.constants.php +# https://github.com/docker-library/wordpress/issues/420#issuecomment-517839670 + echo 'error_reporting = E_ERROR | E_WARNING | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_RECOVERABLE_ERROR'; \ + echo 'display_errors = Off'; \ + echo 'display_startup_errors = Off'; \ + echo 'log_errors = On'; \ + echo 'error_log = /dev/stderr'; \ + echo 'log_errors_max_len = 1024'; \ + echo 'ignore_repeated_errors = On'; \ + echo 'ignore_repeated_source = Off'; \ + echo 'html_errors = Off'; \ + } > /usr/local/etc/php/conf.d/error-logging.ini + +RUN set -eux; \ + version='6.8.3'; \ + sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + \ + curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ + echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ + \ +# upstream tarballs include ./wordpress/ so this gives us /usr/src/wordpress + tar -xzf wordpress.tar.gz -C /usr/src/; \ + rm wordpress.tar.gz; \ + \ +# https://wordpress.org/support/article/htaccess/ + [ ! -e /usr/src/wordpress/.htaccess ]; \ + { \ + echo '# BEGIN WordPress'; \ + echo ''; \ + echo 'RewriteEngine On'; \ + echo 'RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]'; \ + echo 'RewriteBase /'; \ + echo 'RewriteRule ^index\.php$ - [L]'; \ + echo 'RewriteCond %{REQUEST_FILENAME} !-f'; \ + echo 'RewriteCond %{REQUEST_FILENAME} !-d'; \ + echo 'RewriteRule . /index.php [L]'; \ + echo ''; \ + echo '# END WordPress'; \ + } > /usr/src/wordpress/.htaccess; \ + \ + chown -R www-data:www-data /usr/src/wordpress; \ +# pre-create wp-content (and single-level children) for folks who want to bind-mount themes, etc so permissions are pre-created properly instead of root:root +# wp-content/cache: https://github.com/docker-library/wordpress/issues/534#issuecomment-705733507 + mkdir wp-content; \ + for dir in /usr/src/wordpress/wp-content/*/ cache; do \ + dir="$(basename "${dir%/}")"; \ + mkdir "wp-content/$dir"; \ + done; \ + chown -R www-data:www-data wp-content; \ + chmod -R 1777 wp-content + +VOLUME /var/www/html + +COPY --chown=www-data:www-data wp-config-docker.php /usr/src/wordpress/ +COPY docker-entrypoint.sh /usr/local/bin/ +# https://github.com/docker-library/wordpress/issues/969 +RUN ln -svfT docker-entrypoint.sh /usr/local/bin/docker-ensure-installed.sh + +ENTRYPOINT ["docker-entrypoint.sh"] +CMD ["php-fpm"] diff --git a/beta/php8.5-rc/fpm-alpine/docker-entrypoint.sh b/beta/php8.5-rc/fpm-alpine/docker-entrypoint.sh new file mode 100755 index 0000000000..dad730375c --- /dev/null +++ b/beta/php8.5-rc/fpm-alpine/docker-entrypoint.sh @@ -0,0 +1,99 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +if [[ "${1-}" == apache2* ]] || [ "${1-}" = 'php-fpm' ] || { self="$(basename "$0")" && [ "$self" = 'docker-ensure-installed.sh' ]; }; then + uid="$(id -u)" + gid="$(id -g)" + if [ "$uid" = '0' ]; then + case "${1-}" in + apache2*) + user="${APACHE_RUN_USER:-www-data}" + group="${APACHE_RUN_GROUP:-www-data}" + + # strip off any '#' symbol ('#1000' is valid syntax for Apache) + pound='#' + user="${user#$pound}" + group="${group#$pound}" + ;; + *) # php-fpm + user='www-data' + group='www-data' + ;; + esac + else + user="$uid" + group="$gid" + fi + + if [ ! -e index.php ] && [ ! -e wp-includes/version.php ]; then + # if the directory exists and WordPress doesn't appear to be installed AND the permissions of it are root:root, let's chown it (likely a Docker-created directory) + if [ "$uid" = '0' ] && [ "$(stat -c '%u:%g' .)" = '0:0' ]; then + chown "$user:$group" . + fi + + echo >&2 "WordPress not found in $PWD - copying now..." + if [ -n "$(find -mindepth 1 -maxdepth 1 -not -name wp-content)" ]; then + echo >&2 "WARNING: $PWD is not empty! (copying anyhow)" + fi + sourceTarArgs=( + --create + --file - + --directory /usr/src/wordpress + --owner "$user" --group "$group" + ) + targetTarArgs=( + --extract + --file - + ) + if [ "$uid" != '0' ]; then + # avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted" + targetTarArgs+=( --no-overwrite-dir ) + fi + # loop over "pluggable" content in the source, and if it already exists in the destination, skip it + # https://github.com/docker-library/wordpress/issues/506 ("wp-content" persisted, "akismet" updated, WordPress container restarted/recreated, "akismet" downgraded) + for contentPath in \ + /usr/src/wordpress/.htaccess \ + /usr/src/wordpress/wp-content/*/*/ \ + ; do + contentPath="${contentPath%/}" + [ -e "$contentPath" ] || continue + contentPath="${contentPath#/usr/src/wordpress/}" # "wp-content/plugins/akismet", etc. + if [ -e "$PWD/$contentPath" ]; then + echo >&2 "WARNING: '$PWD/$contentPath' exists! (not copying the WordPress version)" + sourceTarArgs+=( --exclude "./$contentPath" ) + fi + done + tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}" + echo >&2 "Complete! WordPress has been successfully copied to $PWD" + fi + + wpEnvs=( "${!WORDPRESS_@}" ) + if [ ! -s wp-config.php ] && [ "${#wpEnvs[@]}" -gt 0 ]; then + for wpConfigDocker in \ + wp-config-docker.php \ + /usr/src/wordpress/wp-config-docker.php \ + ; do + if [ -s "$wpConfigDocker" ]; then + echo >&2 "No 'wp-config.php' found in $PWD, but 'WORDPRESS_...' variables supplied; copying '$wpConfigDocker' (${wpEnvs[*]})" + # using "awk" to replace all instances of "put your unique phrase here" with a properly unique string (for AUTH_KEY and friends to have safe defaults if they aren't specified with environment variables) + awk ' + /put your unique phrase here/ { + cmd = "head -c1m /dev/urandom | sha1sum | cut -d\\ -f1" + cmd | getline str + close(cmd) + gsub("put your unique phrase here", str) + } + { print } + ' "$wpConfigDocker" > wp-config.php + if [ "$uid" = '0' ]; then + # attempt to ensure that wp-config.php is owned by the run user + # could be on a filesystem that doesn't allow chown (like some NFS setups) + chown "$user:$group" wp-config.php || true + fi + break + fi + done + fi +fi + +exec "$@" diff --git a/beta/php8.5-rc/fpm-alpine/wp-config-docker.php b/beta/php8.5-rc/fpm-alpine/wp-config-docker.php new file mode 100644 index 0000000000..ada2ee3c9e --- /dev/null +++ b/beta/php8.5-rc/fpm-alpine/wp-config-docker.php @@ -0,0 +1,139 @@ +&1 1>&2 2>&3)"; \ + [ -z "$err" ]; \ + \ + extDir="$(php -r 'echo ini_get("extension_dir");')"; \ + [ -d "$extDir" ]; \ +# 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 "$extDir"/*.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 --search \ + | 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/*; \ + \ + ! { ldd "$extDir"/*.so | grep 'not found'; }; \ +# check for output like "PHP Warning: PHP Startup: Unable to load dynamic library 'foo' (tried: ...) + err="$(php --version 3>&1 1>&2 2>&3)"; \ + [ -z "$err" ] + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN set -eux; \ + docker-php-ext-enable opcache; \ + { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=2'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini +# https://wordpress.org/support/article/editing-wp-config-php/#configure-error-logging +RUN { \ +# https://www.php.net/manual/en/errorfunc.constants.php +# https://github.com/docker-library/wordpress/issues/420#issuecomment-517839670 + echo 'error_reporting = E_ERROR | E_WARNING | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_RECOVERABLE_ERROR'; \ + echo 'display_errors = Off'; \ + echo 'display_startup_errors = Off'; \ + echo 'log_errors = On'; \ + echo 'error_log = /dev/stderr'; \ + echo 'log_errors_max_len = 1024'; \ + echo 'ignore_repeated_errors = On'; \ + echo 'ignore_repeated_source = Off'; \ + echo 'html_errors = Off'; \ + } > /usr/local/etc/php/conf.d/error-logging.ini + +RUN set -eux; \ + version='6.8.3'; \ + sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + \ + curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ + echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ + \ +# upstream tarballs include ./wordpress/ so this gives us /usr/src/wordpress + tar -xzf wordpress.tar.gz -C /usr/src/; \ + rm wordpress.tar.gz; \ + \ +# https://wordpress.org/support/article/htaccess/ + [ ! -e /usr/src/wordpress/.htaccess ]; \ + { \ + echo '# BEGIN WordPress'; \ + echo ''; \ + echo 'RewriteEngine On'; \ + echo 'RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]'; \ + echo 'RewriteBase /'; \ + echo 'RewriteRule ^index\.php$ - [L]'; \ + echo 'RewriteCond %{REQUEST_FILENAME} !-f'; \ + echo 'RewriteCond %{REQUEST_FILENAME} !-d'; \ + echo 'RewriteRule . /index.php [L]'; \ + echo ''; \ + echo '# END WordPress'; \ + } > /usr/src/wordpress/.htaccess; \ + \ + chown -R www-data:www-data /usr/src/wordpress; \ +# pre-create wp-content (and single-level children) for folks who want to bind-mount themes, etc so permissions are pre-created properly instead of root:root +# wp-content/cache: https://github.com/docker-library/wordpress/issues/534#issuecomment-705733507 + mkdir wp-content; \ + for dir in /usr/src/wordpress/wp-content/*/ cache; do \ + dir="$(basename "${dir%/}")"; \ + mkdir "wp-content/$dir"; \ + done; \ + chown -R www-data:www-data wp-content; \ + chmod -R 1777 wp-content + +VOLUME /var/www/html + +COPY --chown=www-data:www-data wp-config-docker.php /usr/src/wordpress/ +COPY docker-entrypoint.sh /usr/local/bin/ +# https://github.com/docker-library/wordpress/issues/969 +RUN ln -svfT docker-entrypoint.sh /usr/local/bin/docker-ensure-installed.sh + +ENTRYPOINT ["docker-entrypoint.sh"] +CMD ["php-fpm"] diff --git a/beta/php8.5-rc/fpm/docker-entrypoint.sh b/beta/php8.5-rc/fpm/docker-entrypoint.sh new file mode 100755 index 0000000000..dad730375c --- /dev/null +++ b/beta/php8.5-rc/fpm/docker-entrypoint.sh @@ -0,0 +1,99 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +if [[ "${1-}" == apache2* ]] || [ "${1-}" = 'php-fpm' ] || { self="$(basename "$0")" && [ "$self" = 'docker-ensure-installed.sh' ]; }; then + uid="$(id -u)" + gid="$(id -g)" + if [ "$uid" = '0' ]; then + case "${1-}" in + apache2*) + user="${APACHE_RUN_USER:-www-data}" + group="${APACHE_RUN_GROUP:-www-data}" + + # strip off any '#' symbol ('#1000' is valid syntax for Apache) + pound='#' + user="${user#$pound}" + group="${group#$pound}" + ;; + *) # php-fpm + user='www-data' + group='www-data' + ;; + esac + else + user="$uid" + group="$gid" + fi + + if [ ! -e index.php ] && [ ! -e wp-includes/version.php ]; then + # if the directory exists and WordPress doesn't appear to be installed AND the permissions of it are root:root, let's chown it (likely a Docker-created directory) + if [ "$uid" = '0' ] && [ "$(stat -c '%u:%g' .)" = '0:0' ]; then + chown "$user:$group" . + fi + + echo >&2 "WordPress not found in $PWD - copying now..." + if [ -n "$(find -mindepth 1 -maxdepth 1 -not -name wp-content)" ]; then + echo >&2 "WARNING: $PWD is not empty! (copying anyhow)" + fi + sourceTarArgs=( + --create + --file - + --directory /usr/src/wordpress + --owner "$user" --group "$group" + ) + targetTarArgs=( + --extract + --file - + ) + if [ "$uid" != '0' ]; then + # avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted" + targetTarArgs+=( --no-overwrite-dir ) + fi + # loop over "pluggable" content in the source, and if it already exists in the destination, skip it + # https://github.com/docker-library/wordpress/issues/506 ("wp-content" persisted, "akismet" updated, WordPress container restarted/recreated, "akismet" downgraded) + for contentPath in \ + /usr/src/wordpress/.htaccess \ + /usr/src/wordpress/wp-content/*/*/ \ + ; do + contentPath="${contentPath%/}" + [ -e "$contentPath" ] || continue + contentPath="${contentPath#/usr/src/wordpress/}" # "wp-content/plugins/akismet", etc. + if [ -e "$PWD/$contentPath" ]; then + echo >&2 "WARNING: '$PWD/$contentPath' exists! (not copying the WordPress version)" + sourceTarArgs+=( --exclude "./$contentPath" ) + fi + done + tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}" + echo >&2 "Complete! WordPress has been successfully copied to $PWD" + fi + + wpEnvs=( "${!WORDPRESS_@}" ) + if [ ! -s wp-config.php ] && [ "${#wpEnvs[@]}" -gt 0 ]; then + for wpConfigDocker in \ + wp-config-docker.php \ + /usr/src/wordpress/wp-config-docker.php \ + ; do + if [ -s "$wpConfigDocker" ]; then + echo >&2 "No 'wp-config.php' found in $PWD, but 'WORDPRESS_...' variables supplied; copying '$wpConfigDocker' (${wpEnvs[*]})" + # using "awk" to replace all instances of "put your unique phrase here" with a properly unique string (for AUTH_KEY and friends to have safe defaults if they aren't specified with environment variables) + awk ' + /put your unique phrase here/ { + cmd = "head -c1m /dev/urandom | sha1sum | cut -d\\ -f1" + cmd | getline str + close(cmd) + gsub("put your unique phrase here", str) + } + { print } + ' "$wpConfigDocker" > wp-config.php + if [ "$uid" = '0' ]; then + # attempt to ensure that wp-config.php is owned by the run user + # could be on a filesystem that doesn't allow chown (like some NFS setups) + chown "$user:$group" wp-config.php || true + fi + break + fi + done + fi +fi + +exec "$@" diff --git a/beta/php8.5-rc/fpm/wp-config-docker.php b/beta/php8.5-rc/fpm/wp-config-docker.php new file mode 100644 index 0000000000..ada2ee3c9e --- /dev/null +++ b/beta/php8.5-rc/fpm/wp-config-docker.php @@ -0,0 +1,139 @@ +&1 1>&2 2>&3)"; \ + [ -z "$err" ]; \ + \ + extDir="$(php -r 'echo ini_get("extension_dir");')"; \ + [ -d "$extDir" ]; \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive "$extDir" \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .wordpress-phpexts-rundeps $runDeps; \ + apk del --no-network .build-deps; \ + \ + ! { ldd "$extDir"/*.so | grep 'not found'; }; \ +# check for output like "PHP Warning: PHP Startup: Unable to load dynamic library 'foo' (tried: ...) + err="$(php --version 3>&1 1>&2 2>&3)"; \ + [ -z "$err" ] + +# set recommended PHP.ini settings +# excluding opcache due https://github.com/docker-library/wordpress/issues/407 +# https://wordpress.org/support/article/editing-wp-config-php/#configure-error-logging +RUN { \ +# https://www.php.net/manual/en/errorfunc.constants.php +# https://github.com/docker-library/wordpress/issues/420#issuecomment-517839670 + echo 'error_reporting = E_ERROR | E_WARNING | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_RECOVERABLE_ERROR'; \ + echo 'display_errors = Off'; \ + echo 'display_startup_errors = Off'; \ + echo 'log_errors = On'; \ + echo 'error_log = /dev/stderr'; \ + echo 'log_errors_max_len = 1024'; \ + echo 'ignore_repeated_errors = On'; \ + echo 'ignore_repeated_source = Off'; \ + echo 'html_errors = Off'; \ + } > /usr/local/etc/php/conf.d/error-logging.ini + +# https://make.wordpress.org/cli/2018/05/31/gpg-signature-change/ +# pub rsa2048 2018-05-31 [SC] +# 63AF 7AA1 5067 C056 16FD DD88 A3A2 E8F2 26F0 BC06 +# uid [ unknown] WP-CLI Releases +# sub rsa2048 2018-05-31 [E] +ENV WORDPRESS_CLI_GPG_KEY 63AF7AA15067C05616FDDD88A3A2E8F226F0BC06 + +ENV WORDPRESS_CLI_VERSION 2.12.0 +ENV WORDPRESS_CLI_SHA512 be928f6b8ca1e8dfb9d2f4b75a13aa4aee0896f8a9a0a1c45cd5d2c98605e6172e6d014dda2e27f88c98befc16c040cbb2bd1bfa121510ea5cdf5f6a30fe8832 + +RUN set -ex; \ + \ + apk add --no-cache --virtual .fetch-deps \ + gnupg \ + ; \ + \ + curl -o /usr/local/bin/wp.gpg -fL "https://github.com/wp-cli/wp-cli/releases/download/v${WORDPRESS_CLI_VERSION}/wp-cli-${WORDPRESS_CLI_VERSION}.phar.gpg"; \ + \ + GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \ + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$WORDPRESS_CLI_GPG_KEY"; \ + gpg --batch --decrypt --output /usr/local/bin/wp /usr/local/bin/wp.gpg; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME" /usr/local/bin/wp.gpg; unset GNUPGHOME; \ + \ + echo "$WORDPRESS_CLI_SHA512 */usr/local/bin/wp" | sha512sum -c -; \ + chmod +x /usr/local/bin/wp; \ + \ + apk del --no-network .fetch-deps; \ + \ + wp --allow-root --version + +VOLUME /var/www/html + +COPY docker-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["docker-entrypoint.sh"] +USER www-data +CMD ["wp", "shell"] diff --git a/cli/php8.5-rc/alpine/docker-entrypoint.sh b/cli/php8.5-rc/alpine/docker-entrypoint.sh new file mode 100755 index 0000000000..b0f77dbb63 --- /dev/null +++ b/cli/php8.5-rc/alpine/docker-entrypoint.sh @@ -0,0 +1,11 @@ +#!/bin/sh +set -euo pipefail + +# first arg is `-f` or `--some-option` +# or if our command is a valid wp-cli subcommand, let's invoke it through wp-cli instead +# (this allows for "docker run wordpress:cli help", etc) +if [ "${1#-}" != "$1" ] || wp help "$1" > /dev/null 2>&1; then + set -- wp "$@" +fi + +exec "$@" diff --git a/latest/php8.5-rc/apache/Dockerfile b/latest/php8.5-rc/apache/Dockerfile new file mode 100644 index 0000000000..03146f02fa --- /dev/null +++ b/latest/php8.5-rc/apache/Dockerfile @@ -0,0 +1,171 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +FROM php:8.5-rc-apache + +# persistent dependencies +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ +# Ghostscript is required for rendering PDF previews + ghostscript \ + ; \ + rm -rf /var/lib/apt/lists/* + +# install the PHP extensions we need (https://make.wordpress.org/hosting/handbook/handbook/server-environment/#php-extensions) +RUN set -ex; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libavif-dev \ + libfreetype6-dev \ + libicu-dev \ + libjpeg-dev \ + libmagickwand-dev \ + libpng-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-avif \ + --with-freetype \ + --with-jpeg \ + --with-webp \ + ; \ + docker-php-ext-install -j "$(nproc)" \ + bcmath \ + exif \ + gd \ + intl \ + mysqli \ + zip \ + ; \ +# https://pecl.php.net/package/imagick + pecl install imagick-3.8.0; \ + docker-php-ext-enable imagick; \ + rm -r /tmp/pear; \ + \ +# some misbehaving extensions end up outputting to stdout 🙈 (https://github.com/docker-library/wordpress/issues/669#issuecomment-993945967) + out="$(php -r 'exit(0);')"; \ + [ -z "$out" ]; \ + err="$(php -r 'exit(0);' 3>&1 1>&2 2>&3)"; \ + [ -z "$err" ]; \ + \ + extDir="$(php -r 'echo ini_get("extension_dir");')"; \ + [ -d "$extDir" ]; \ +# 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 "$extDir"/*.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 --search \ + | 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/*; \ + \ + ! { ldd "$extDir"/*.so | grep 'not found'; }; \ +# check for output like "PHP Warning: PHP Startup: Unable to load dynamic library 'foo' (tried: ...) + err="$(php --version 3>&1 1>&2 2>&3)"; \ + [ -z "$err" ] + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN set -eux; \ + docker-php-ext-enable opcache; \ + { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=2'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini +# https://wordpress.org/support/article/editing-wp-config-php/#configure-error-logging +RUN { \ +# https://www.php.net/manual/en/errorfunc.constants.php +# https://github.com/docker-library/wordpress/issues/420#issuecomment-517839670 + echo 'error_reporting = E_ERROR | E_WARNING | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_RECOVERABLE_ERROR'; \ + echo 'display_errors = Off'; \ + echo 'display_startup_errors = Off'; \ + echo 'log_errors = On'; \ + echo 'error_log = /dev/stderr'; \ + echo 'log_errors_max_len = 1024'; \ + echo 'ignore_repeated_errors = On'; \ + echo 'ignore_repeated_source = Off'; \ + echo 'html_errors = Off'; \ + } > /usr/local/etc/php/conf.d/error-logging.ini + +RUN set -eux; \ + a2enmod rewrite expires; \ + \ +# https://httpd.apache.org/docs/2.4/mod/mod_remoteip.html + a2enmod remoteip; \ + { \ + echo 'RemoteIPHeader X-Forwarded-For'; \ +# these IP ranges are reserved for "private" use and should thus *usually* be safe inside Docker + echo 'RemoteIPInternalProxy 10.0.0.0/8'; \ + echo 'RemoteIPInternalProxy 172.16.0.0/12'; \ + echo 'RemoteIPInternalProxy 192.168.0.0/16'; \ + echo 'RemoteIPInternalProxy 169.254.0.0/16'; \ + echo 'RemoteIPInternalProxy 127.0.0.0/8'; \ + } > /etc/apache2/conf-available/remoteip.conf; \ + a2enconf remoteip; \ +# https://github.com/docker-library/wordpress/issues/383#issuecomment-507886512 +# (replace all instances of "%h" with "%a" in LogFormat) + find /etc/apache2 -type f -name '*.conf' -exec sed -ri 's/([[:space:]]*LogFormat[[:space:]]+"[^"]*)%h([^"]*")/\1%a\2/g' '{}' + + +RUN set -eux; \ + version='6.8.3'; \ + sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + \ + curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ + echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ + \ +# upstream tarballs include ./wordpress/ so this gives us /usr/src/wordpress + tar -xzf wordpress.tar.gz -C /usr/src/; \ + rm wordpress.tar.gz; \ + \ +# https://wordpress.org/support/article/htaccess/ + [ ! -e /usr/src/wordpress/.htaccess ]; \ + { \ + echo '# BEGIN WordPress'; \ + echo ''; \ + echo 'RewriteEngine On'; \ + echo 'RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]'; \ + echo 'RewriteBase /'; \ + echo 'RewriteRule ^index\.php$ - [L]'; \ + echo 'RewriteCond %{REQUEST_FILENAME} !-f'; \ + echo 'RewriteCond %{REQUEST_FILENAME} !-d'; \ + echo 'RewriteRule . /index.php [L]'; \ + echo ''; \ + echo '# END WordPress'; \ + } > /usr/src/wordpress/.htaccess; \ + \ + chown -R www-data:www-data /usr/src/wordpress; \ +# pre-create wp-content (and single-level children) for folks who want to bind-mount themes, etc so permissions are pre-created properly instead of root:root +# wp-content/cache: https://github.com/docker-library/wordpress/issues/534#issuecomment-705733507 + mkdir wp-content; \ + for dir in /usr/src/wordpress/wp-content/*/ cache; do \ + dir="$(basename "${dir%/}")"; \ + mkdir "wp-content/$dir"; \ + done; \ + chown -R www-data:www-data wp-content; \ + chmod -R 1777 wp-content + +VOLUME /var/www/html + +COPY --chown=www-data:www-data wp-config-docker.php /usr/src/wordpress/ +COPY docker-entrypoint.sh /usr/local/bin/ +# https://github.com/docker-library/wordpress/issues/969 +RUN ln -svfT docker-entrypoint.sh /usr/local/bin/docker-ensure-installed.sh + +ENTRYPOINT ["docker-entrypoint.sh"] +CMD ["apache2-foreground"] diff --git a/latest/php8.5-rc/apache/docker-entrypoint.sh b/latest/php8.5-rc/apache/docker-entrypoint.sh new file mode 100755 index 0000000000..dad730375c --- /dev/null +++ b/latest/php8.5-rc/apache/docker-entrypoint.sh @@ -0,0 +1,99 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +if [[ "${1-}" == apache2* ]] || [ "${1-}" = 'php-fpm' ] || { self="$(basename "$0")" && [ "$self" = 'docker-ensure-installed.sh' ]; }; then + uid="$(id -u)" + gid="$(id -g)" + if [ "$uid" = '0' ]; then + case "${1-}" in + apache2*) + user="${APACHE_RUN_USER:-www-data}" + group="${APACHE_RUN_GROUP:-www-data}" + + # strip off any '#' symbol ('#1000' is valid syntax for Apache) + pound='#' + user="${user#$pound}" + group="${group#$pound}" + ;; + *) # php-fpm + user='www-data' + group='www-data' + ;; + esac + else + user="$uid" + group="$gid" + fi + + if [ ! -e index.php ] && [ ! -e wp-includes/version.php ]; then + # if the directory exists and WordPress doesn't appear to be installed AND the permissions of it are root:root, let's chown it (likely a Docker-created directory) + if [ "$uid" = '0' ] && [ "$(stat -c '%u:%g' .)" = '0:0' ]; then + chown "$user:$group" . + fi + + echo >&2 "WordPress not found in $PWD - copying now..." + if [ -n "$(find -mindepth 1 -maxdepth 1 -not -name wp-content)" ]; then + echo >&2 "WARNING: $PWD is not empty! (copying anyhow)" + fi + sourceTarArgs=( + --create + --file - + --directory /usr/src/wordpress + --owner "$user" --group "$group" + ) + targetTarArgs=( + --extract + --file - + ) + if [ "$uid" != '0' ]; then + # avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted" + targetTarArgs+=( --no-overwrite-dir ) + fi + # loop over "pluggable" content in the source, and if it already exists in the destination, skip it + # https://github.com/docker-library/wordpress/issues/506 ("wp-content" persisted, "akismet" updated, WordPress container restarted/recreated, "akismet" downgraded) + for contentPath in \ + /usr/src/wordpress/.htaccess \ + /usr/src/wordpress/wp-content/*/*/ \ + ; do + contentPath="${contentPath%/}" + [ -e "$contentPath" ] || continue + contentPath="${contentPath#/usr/src/wordpress/}" # "wp-content/plugins/akismet", etc. + if [ -e "$PWD/$contentPath" ]; then + echo >&2 "WARNING: '$PWD/$contentPath' exists! (not copying the WordPress version)" + sourceTarArgs+=( --exclude "./$contentPath" ) + fi + done + tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}" + echo >&2 "Complete! WordPress has been successfully copied to $PWD" + fi + + wpEnvs=( "${!WORDPRESS_@}" ) + if [ ! -s wp-config.php ] && [ "${#wpEnvs[@]}" -gt 0 ]; then + for wpConfigDocker in \ + wp-config-docker.php \ + /usr/src/wordpress/wp-config-docker.php \ + ; do + if [ -s "$wpConfigDocker" ]; then + echo >&2 "No 'wp-config.php' found in $PWD, but 'WORDPRESS_...' variables supplied; copying '$wpConfigDocker' (${wpEnvs[*]})" + # using "awk" to replace all instances of "put your unique phrase here" with a properly unique string (for AUTH_KEY and friends to have safe defaults if they aren't specified with environment variables) + awk ' + /put your unique phrase here/ { + cmd = "head -c1m /dev/urandom | sha1sum | cut -d\\ -f1" + cmd | getline str + close(cmd) + gsub("put your unique phrase here", str) + } + { print } + ' "$wpConfigDocker" > wp-config.php + if [ "$uid" = '0' ]; then + # attempt to ensure that wp-config.php is owned by the run user + # could be on a filesystem that doesn't allow chown (like some NFS setups) + chown "$user:$group" wp-config.php || true + fi + break + fi + done + fi +fi + +exec "$@" diff --git a/latest/php8.5-rc/apache/wp-config-docker.php b/latest/php8.5-rc/apache/wp-config-docker.php new file mode 100644 index 0000000000..ada2ee3c9e --- /dev/null +++ b/latest/php8.5-rc/apache/wp-config-docker.php @@ -0,0 +1,139 @@ +&1 1>&2 2>&3)"; \ + [ -z "$err" ]; \ + \ + extDir="$(php -r 'echo ini_get("extension_dir");')"; \ + [ -d "$extDir" ]; \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive "$extDir" \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .wordpress-phpexts-rundeps $runDeps; \ + apk del --no-network .build-deps; \ + \ + ! { ldd "$extDir"/*.so | grep 'not found'; }; \ +# check for output like "PHP Warning: PHP Startup: Unable to load dynamic library 'foo' (tried: ...) + err="$(php --version 3>&1 1>&2 2>&3)"; \ + [ -z "$err" ] + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN set -eux; \ + docker-php-ext-enable opcache; \ + { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=2'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini +# https://wordpress.org/support/article/editing-wp-config-php/#configure-error-logging +RUN { \ +# https://www.php.net/manual/en/errorfunc.constants.php +# https://github.com/docker-library/wordpress/issues/420#issuecomment-517839670 + echo 'error_reporting = E_ERROR | E_WARNING | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_RECOVERABLE_ERROR'; \ + echo 'display_errors = Off'; \ + echo 'display_startup_errors = Off'; \ + echo 'log_errors = On'; \ + echo 'error_log = /dev/stderr'; \ + echo 'log_errors_max_len = 1024'; \ + echo 'ignore_repeated_errors = On'; \ + echo 'ignore_repeated_source = Off'; \ + echo 'html_errors = Off'; \ + } > /usr/local/etc/php/conf.d/error-logging.ini + +RUN set -eux; \ + version='6.8.3'; \ + sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + \ + curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ + echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ + \ +# upstream tarballs include ./wordpress/ so this gives us /usr/src/wordpress + tar -xzf wordpress.tar.gz -C /usr/src/; \ + rm wordpress.tar.gz; \ + \ +# https://wordpress.org/support/article/htaccess/ + [ ! -e /usr/src/wordpress/.htaccess ]; \ + { \ + echo '# BEGIN WordPress'; \ + echo ''; \ + echo 'RewriteEngine On'; \ + echo 'RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]'; \ + echo 'RewriteBase /'; \ + echo 'RewriteRule ^index\.php$ - [L]'; \ + echo 'RewriteCond %{REQUEST_FILENAME} !-f'; \ + echo 'RewriteCond %{REQUEST_FILENAME} !-d'; \ + echo 'RewriteRule . /index.php [L]'; \ + echo ''; \ + echo '# END WordPress'; \ + } > /usr/src/wordpress/.htaccess; \ + \ + chown -R www-data:www-data /usr/src/wordpress; \ +# pre-create wp-content (and single-level children) for folks who want to bind-mount themes, etc so permissions are pre-created properly instead of root:root +# wp-content/cache: https://github.com/docker-library/wordpress/issues/534#issuecomment-705733507 + mkdir wp-content; \ + for dir in /usr/src/wordpress/wp-content/*/ cache; do \ + dir="$(basename "${dir%/}")"; \ + mkdir "wp-content/$dir"; \ + done; \ + chown -R www-data:www-data wp-content; \ + chmod -R 1777 wp-content + +VOLUME /var/www/html + +COPY --chown=www-data:www-data wp-config-docker.php /usr/src/wordpress/ +COPY docker-entrypoint.sh /usr/local/bin/ +# https://github.com/docker-library/wordpress/issues/969 +RUN ln -svfT docker-entrypoint.sh /usr/local/bin/docker-ensure-installed.sh + +ENTRYPOINT ["docker-entrypoint.sh"] +CMD ["php-fpm"] diff --git a/latest/php8.5-rc/fpm-alpine/docker-entrypoint.sh b/latest/php8.5-rc/fpm-alpine/docker-entrypoint.sh new file mode 100755 index 0000000000..dad730375c --- /dev/null +++ b/latest/php8.5-rc/fpm-alpine/docker-entrypoint.sh @@ -0,0 +1,99 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +if [[ "${1-}" == apache2* ]] || [ "${1-}" = 'php-fpm' ] || { self="$(basename "$0")" && [ "$self" = 'docker-ensure-installed.sh' ]; }; then + uid="$(id -u)" + gid="$(id -g)" + if [ "$uid" = '0' ]; then + case "${1-}" in + apache2*) + user="${APACHE_RUN_USER:-www-data}" + group="${APACHE_RUN_GROUP:-www-data}" + + # strip off any '#' symbol ('#1000' is valid syntax for Apache) + pound='#' + user="${user#$pound}" + group="${group#$pound}" + ;; + *) # php-fpm + user='www-data' + group='www-data' + ;; + esac + else + user="$uid" + group="$gid" + fi + + if [ ! -e index.php ] && [ ! -e wp-includes/version.php ]; then + # if the directory exists and WordPress doesn't appear to be installed AND the permissions of it are root:root, let's chown it (likely a Docker-created directory) + if [ "$uid" = '0' ] && [ "$(stat -c '%u:%g' .)" = '0:0' ]; then + chown "$user:$group" . + fi + + echo >&2 "WordPress not found in $PWD - copying now..." + if [ -n "$(find -mindepth 1 -maxdepth 1 -not -name wp-content)" ]; then + echo >&2 "WARNING: $PWD is not empty! (copying anyhow)" + fi + sourceTarArgs=( + --create + --file - + --directory /usr/src/wordpress + --owner "$user" --group "$group" + ) + targetTarArgs=( + --extract + --file - + ) + if [ "$uid" != '0' ]; then + # avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted" + targetTarArgs+=( --no-overwrite-dir ) + fi + # loop over "pluggable" content in the source, and if it already exists in the destination, skip it + # https://github.com/docker-library/wordpress/issues/506 ("wp-content" persisted, "akismet" updated, WordPress container restarted/recreated, "akismet" downgraded) + for contentPath in \ + /usr/src/wordpress/.htaccess \ + /usr/src/wordpress/wp-content/*/*/ \ + ; do + contentPath="${contentPath%/}" + [ -e "$contentPath" ] || continue + contentPath="${contentPath#/usr/src/wordpress/}" # "wp-content/plugins/akismet", etc. + if [ -e "$PWD/$contentPath" ]; then + echo >&2 "WARNING: '$PWD/$contentPath' exists! (not copying the WordPress version)" + sourceTarArgs+=( --exclude "./$contentPath" ) + fi + done + tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}" + echo >&2 "Complete! WordPress has been successfully copied to $PWD" + fi + + wpEnvs=( "${!WORDPRESS_@}" ) + if [ ! -s wp-config.php ] && [ "${#wpEnvs[@]}" -gt 0 ]; then + for wpConfigDocker in \ + wp-config-docker.php \ + /usr/src/wordpress/wp-config-docker.php \ + ; do + if [ -s "$wpConfigDocker" ]; then + echo >&2 "No 'wp-config.php' found in $PWD, but 'WORDPRESS_...' variables supplied; copying '$wpConfigDocker' (${wpEnvs[*]})" + # using "awk" to replace all instances of "put your unique phrase here" with a properly unique string (for AUTH_KEY and friends to have safe defaults if they aren't specified with environment variables) + awk ' + /put your unique phrase here/ { + cmd = "head -c1m /dev/urandom | sha1sum | cut -d\\ -f1" + cmd | getline str + close(cmd) + gsub("put your unique phrase here", str) + } + { print } + ' "$wpConfigDocker" > wp-config.php + if [ "$uid" = '0' ]; then + # attempt to ensure that wp-config.php is owned by the run user + # could be on a filesystem that doesn't allow chown (like some NFS setups) + chown "$user:$group" wp-config.php || true + fi + break + fi + done + fi +fi + +exec "$@" diff --git a/latest/php8.5-rc/fpm-alpine/wp-config-docker.php b/latest/php8.5-rc/fpm-alpine/wp-config-docker.php new file mode 100644 index 0000000000..ada2ee3c9e --- /dev/null +++ b/latest/php8.5-rc/fpm-alpine/wp-config-docker.php @@ -0,0 +1,139 @@ +&1 1>&2 2>&3)"; \ + [ -z "$err" ]; \ + \ + extDir="$(php -r 'echo ini_get("extension_dir");')"; \ + [ -d "$extDir" ]; \ +# 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 "$extDir"/*.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 --search \ + | 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/*; \ + \ + ! { ldd "$extDir"/*.so | grep 'not found'; }; \ +# check for output like "PHP Warning: PHP Startup: Unable to load dynamic library 'foo' (tried: ...) + err="$(php --version 3>&1 1>&2 2>&3)"; \ + [ -z "$err" ] + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN set -eux; \ + docker-php-ext-enable opcache; \ + { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=2'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini +# https://wordpress.org/support/article/editing-wp-config-php/#configure-error-logging +RUN { \ +# https://www.php.net/manual/en/errorfunc.constants.php +# https://github.com/docker-library/wordpress/issues/420#issuecomment-517839670 + echo 'error_reporting = E_ERROR | E_WARNING | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_RECOVERABLE_ERROR'; \ + echo 'display_errors = Off'; \ + echo 'display_startup_errors = Off'; \ + echo 'log_errors = On'; \ + echo 'error_log = /dev/stderr'; \ + echo 'log_errors_max_len = 1024'; \ + echo 'ignore_repeated_errors = On'; \ + echo 'ignore_repeated_source = Off'; \ + echo 'html_errors = Off'; \ + } > /usr/local/etc/php/conf.d/error-logging.ini + +RUN set -eux; \ + version='6.8.3'; \ + sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + \ + curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ + echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ + \ +# upstream tarballs include ./wordpress/ so this gives us /usr/src/wordpress + tar -xzf wordpress.tar.gz -C /usr/src/; \ + rm wordpress.tar.gz; \ + \ +# https://wordpress.org/support/article/htaccess/ + [ ! -e /usr/src/wordpress/.htaccess ]; \ + { \ + echo '# BEGIN WordPress'; \ + echo ''; \ + echo 'RewriteEngine On'; \ + echo 'RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]'; \ + echo 'RewriteBase /'; \ + echo 'RewriteRule ^index\.php$ - [L]'; \ + echo 'RewriteCond %{REQUEST_FILENAME} !-f'; \ + echo 'RewriteCond %{REQUEST_FILENAME} !-d'; \ + echo 'RewriteRule . /index.php [L]'; \ + echo ''; \ + echo '# END WordPress'; \ + } > /usr/src/wordpress/.htaccess; \ + \ + chown -R www-data:www-data /usr/src/wordpress; \ +# pre-create wp-content (and single-level children) for folks who want to bind-mount themes, etc so permissions are pre-created properly instead of root:root +# wp-content/cache: https://github.com/docker-library/wordpress/issues/534#issuecomment-705733507 + mkdir wp-content; \ + for dir in /usr/src/wordpress/wp-content/*/ cache; do \ + dir="$(basename "${dir%/}")"; \ + mkdir "wp-content/$dir"; \ + done; \ + chown -R www-data:www-data wp-content; \ + chmod -R 1777 wp-content + +VOLUME /var/www/html + +COPY --chown=www-data:www-data wp-config-docker.php /usr/src/wordpress/ +COPY docker-entrypoint.sh /usr/local/bin/ +# https://github.com/docker-library/wordpress/issues/969 +RUN ln -svfT docker-entrypoint.sh /usr/local/bin/docker-ensure-installed.sh + +ENTRYPOINT ["docker-entrypoint.sh"] +CMD ["php-fpm"] diff --git a/latest/php8.5-rc/fpm/docker-entrypoint.sh b/latest/php8.5-rc/fpm/docker-entrypoint.sh new file mode 100755 index 0000000000..dad730375c --- /dev/null +++ b/latest/php8.5-rc/fpm/docker-entrypoint.sh @@ -0,0 +1,99 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +if [[ "${1-}" == apache2* ]] || [ "${1-}" = 'php-fpm' ] || { self="$(basename "$0")" && [ "$self" = 'docker-ensure-installed.sh' ]; }; then + uid="$(id -u)" + gid="$(id -g)" + if [ "$uid" = '0' ]; then + case "${1-}" in + apache2*) + user="${APACHE_RUN_USER:-www-data}" + group="${APACHE_RUN_GROUP:-www-data}" + + # strip off any '#' symbol ('#1000' is valid syntax for Apache) + pound='#' + user="${user#$pound}" + group="${group#$pound}" + ;; + *) # php-fpm + user='www-data' + group='www-data' + ;; + esac + else + user="$uid" + group="$gid" + fi + + if [ ! -e index.php ] && [ ! -e wp-includes/version.php ]; then + # if the directory exists and WordPress doesn't appear to be installed AND the permissions of it are root:root, let's chown it (likely a Docker-created directory) + if [ "$uid" = '0' ] && [ "$(stat -c '%u:%g' .)" = '0:0' ]; then + chown "$user:$group" . + fi + + echo >&2 "WordPress not found in $PWD - copying now..." + if [ -n "$(find -mindepth 1 -maxdepth 1 -not -name wp-content)" ]; then + echo >&2 "WARNING: $PWD is not empty! (copying anyhow)" + fi + sourceTarArgs=( + --create + --file - + --directory /usr/src/wordpress + --owner "$user" --group "$group" + ) + targetTarArgs=( + --extract + --file - + ) + if [ "$uid" != '0' ]; then + # avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted" + targetTarArgs+=( --no-overwrite-dir ) + fi + # loop over "pluggable" content in the source, and if it already exists in the destination, skip it + # https://github.com/docker-library/wordpress/issues/506 ("wp-content" persisted, "akismet" updated, WordPress container restarted/recreated, "akismet" downgraded) + for contentPath in \ + /usr/src/wordpress/.htaccess \ + /usr/src/wordpress/wp-content/*/*/ \ + ; do + contentPath="${contentPath%/}" + [ -e "$contentPath" ] || continue + contentPath="${contentPath#/usr/src/wordpress/}" # "wp-content/plugins/akismet", etc. + if [ -e "$PWD/$contentPath" ]; then + echo >&2 "WARNING: '$PWD/$contentPath' exists! (not copying the WordPress version)" + sourceTarArgs+=( --exclude "./$contentPath" ) + fi + done + tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}" + echo >&2 "Complete! WordPress has been successfully copied to $PWD" + fi + + wpEnvs=( "${!WORDPRESS_@}" ) + if [ ! -s wp-config.php ] && [ "${#wpEnvs[@]}" -gt 0 ]; then + for wpConfigDocker in \ + wp-config-docker.php \ + /usr/src/wordpress/wp-config-docker.php \ + ; do + if [ -s "$wpConfigDocker" ]; then + echo >&2 "No 'wp-config.php' found in $PWD, but 'WORDPRESS_...' variables supplied; copying '$wpConfigDocker' (${wpEnvs[*]})" + # using "awk" to replace all instances of "put your unique phrase here" with a properly unique string (for AUTH_KEY and friends to have safe defaults if they aren't specified with environment variables) + awk ' + /put your unique phrase here/ { + cmd = "head -c1m /dev/urandom | sha1sum | cut -d\\ -f1" + cmd | getline str + close(cmd) + gsub("put your unique phrase here", str) + } + { print } + ' "$wpConfigDocker" > wp-config.php + if [ "$uid" = '0' ]; then + # attempt to ensure that wp-config.php is owned by the run user + # could be on a filesystem that doesn't allow chown (like some NFS setups) + chown "$user:$group" wp-config.php || true + fi + break + fi + done + fi +fi + +exec "$@" diff --git a/latest/php8.5-rc/fpm/wp-config-docker.php b/latest/php8.5-rc/fpm/wp-config-docker.php new file mode 100644 index 0000000000..ada2ee3c9e --- /dev/null +++ b/latest/php8.5-rc/fpm/wp-config-docker.php @@ -0,0 +1,139 @@ + Date: Wed, 26 Nov 2025 10:48:04 +0100 Subject: [PATCH 2/4] 8.5 RC -> 8.5 --- beta/php8.1/apache/Dockerfile | 4 ++-- beta/php8.1/fpm-alpine/Dockerfile | 4 ++-- beta/php8.1/fpm/Dockerfile | 4 ++-- beta/php8.2/apache/Dockerfile | 4 ++-- beta/php8.2/fpm-alpine/Dockerfile | 4 ++-- beta/php8.2/fpm/Dockerfile | 4 ++-- beta/php8.3/apache/Dockerfile | 4 ++-- beta/php8.3/fpm-alpine/Dockerfile | 4 ++-- beta/php8.3/fpm/Dockerfile | 4 ++-- beta/php8.4/apache/Dockerfile | 4 ++-- beta/php8.4/fpm-alpine/Dockerfile | 4 ++-- beta/php8.4/fpm/Dockerfile | 4 ++-- {latest/php8.5-rc => beta/php8.5}/apache/Dockerfile | 6 +++--- .../apache/docker-entrypoint.sh | 0 .../apache/wp-config-docker.php | 0 beta/{php8.5-rc => php8.5}/fpm-alpine/Dockerfile | 6 +++--- .../fpm-alpine/docker-entrypoint.sh | 0 .../fpm-alpine/wp-config-docker.php | 0 beta/{php8.5-rc => php8.5}/fpm/Dockerfile | 6 +++--- beta/{php8.5-rc => php8.5}/fpm/docker-entrypoint.sh | 0 beta/{php8.5-rc => php8.5}/fpm/wp-config-docker.php | 0 cli/{php8.5-rc => php8.5}/alpine/Dockerfile | 2 +- .../alpine/docker-entrypoint.sh | 0 {beta/php8.5-rc => latest/php8.5}/apache/Dockerfile | 2 +- .../apache/docker-entrypoint.sh | 0 .../apache/wp-config-docker.php | 0 latest/{php8.5-rc => php8.5}/fpm-alpine/Dockerfile | 2 +- .../fpm-alpine/docker-entrypoint.sh | 0 .../fpm-alpine/wp-config-docker.php | 0 latest/{php8.5-rc => php8.5}/fpm/Dockerfile | 2 +- .../{php8.5-rc => php8.5}/fpm/docker-entrypoint.sh | 0 .../{php8.5-rc => php8.5}/fpm/wp-config-docker.php | 0 versions.json | 12 ++++++------ 33 files changed, 43 insertions(+), 43 deletions(-) rename {latest/php8.5-rc => beta/php8.5}/apache/Dockerfile (98%) rename beta/{php8.5-rc => php8.5}/apache/docker-entrypoint.sh (100%) rename beta/{php8.5-rc => php8.5}/apache/wp-config-docker.php (100%) rename beta/{php8.5-rc => php8.5}/fpm-alpine/Dockerfile (98%) rename beta/{php8.5-rc => php8.5}/fpm-alpine/docker-entrypoint.sh (100%) rename beta/{php8.5-rc => php8.5}/fpm-alpine/wp-config-docker.php (100%) rename beta/{php8.5-rc => php8.5}/fpm/Dockerfile (98%) rename beta/{php8.5-rc => php8.5}/fpm/docker-entrypoint.sh (100%) rename beta/{php8.5-rc => php8.5}/fpm/wp-config-docker.php (100%) rename cli/{php8.5-rc => php8.5}/alpine/Dockerfile (99%) rename cli/{php8.5-rc => php8.5}/alpine/docker-entrypoint.sh (100%) rename {beta/php8.5-rc => latest/php8.5}/apache/Dockerfile (99%) rename latest/{php8.5-rc => php8.5}/apache/docker-entrypoint.sh (100%) rename latest/{php8.5-rc => php8.5}/apache/wp-config-docker.php (100%) rename latest/{php8.5-rc => php8.5}/fpm-alpine/Dockerfile (99%) rename latest/{php8.5-rc => php8.5}/fpm-alpine/docker-entrypoint.sh (100%) rename latest/{php8.5-rc => php8.5}/fpm-alpine/wp-config-docker.php (100%) rename latest/{php8.5-rc => php8.5}/fpm/Dockerfile (99%) rename latest/{php8.5-rc => php8.5}/fpm/docker-entrypoint.sh (100%) rename latest/{php8.5-rc => php8.5}/fpm/wp-config-docker.php (100%) diff --git a/beta/php8.1/apache/Dockerfile b/beta/php8.1/apache/Dockerfile index 696e787b53..e8d44f8513 100644 --- a/beta/php8.1/apache/Dockerfile +++ b/beta/php8.1/apache/Dockerfile @@ -123,8 +123,8 @@ RUN set -eux; \ find /etc/apache2 -type f -name '*.conf' -exec sed -ri 's/([[:space:]]*LogFormat[[:space:]]+"[^"]*)%h([^"]*")/\1%a\2/g' '{}' + RUN set -eux; \ - version='6.8.3'; \ - sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + version='6.9-RC3'; \ + sha1='f98c7ce5304d9a3543101678e43a2622f76abcd9'; \ \ curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ diff --git a/beta/php8.1/fpm-alpine/Dockerfile b/beta/php8.1/fpm-alpine/Dockerfile index 868d4f49c2..f5811695be 100644 --- a/beta/php8.1/fpm-alpine/Dockerfile +++ b/beta/php8.1/fpm-alpine/Dockerfile @@ -100,8 +100,8 @@ RUN { \ } > /usr/local/etc/php/conf.d/error-logging.ini RUN set -eux; \ - version='6.8.3'; \ - sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + version='6.9-RC3'; \ + sha1='f98c7ce5304d9a3543101678e43a2622f76abcd9'; \ \ curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ diff --git a/beta/php8.1/fpm/Dockerfile b/beta/php8.1/fpm/Dockerfile index ad7b1d6ca7..27d9b31306 100644 --- a/beta/php8.1/fpm/Dockerfile +++ b/beta/php8.1/fpm/Dockerfile @@ -104,8 +104,8 @@ RUN { \ } > /usr/local/etc/php/conf.d/error-logging.ini RUN set -eux; \ - version='6.8.3'; \ - sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + version='6.9-RC3'; \ + sha1='f98c7ce5304d9a3543101678e43a2622f76abcd9'; \ \ curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ diff --git a/beta/php8.2/apache/Dockerfile b/beta/php8.2/apache/Dockerfile index 15cda0bec9..38cb1737d3 100644 --- a/beta/php8.2/apache/Dockerfile +++ b/beta/php8.2/apache/Dockerfile @@ -123,8 +123,8 @@ RUN set -eux; \ find /etc/apache2 -type f -name '*.conf' -exec sed -ri 's/([[:space:]]*LogFormat[[:space:]]+"[^"]*)%h([^"]*")/\1%a\2/g' '{}' + RUN set -eux; \ - version='6.8.3'; \ - sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + version='6.9-RC3'; \ + sha1='f98c7ce5304d9a3543101678e43a2622f76abcd9'; \ \ curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ diff --git a/beta/php8.2/fpm-alpine/Dockerfile b/beta/php8.2/fpm-alpine/Dockerfile index 0f821b9bd5..b7e405419a 100644 --- a/beta/php8.2/fpm-alpine/Dockerfile +++ b/beta/php8.2/fpm-alpine/Dockerfile @@ -100,8 +100,8 @@ RUN { \ } > /usr/local/etc/php/conf.d/error-logging.ini RUN set -eux; \ - version='6.8.3'; \ - sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + version='6.9-RC3'; \ + sha1='f98c7ce5304d9a3543101678e43a2622f76abcd9'; \ \ curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ diff --git a/beta/php8.2/fpm/Dockerfile b/beta/php8.2/fpm/Dockerfile index 9fe5bbd1ec..ea8ff90a9d 100644 --- a/beta/php8.2/fpm/Dockerfile +++ b/beta/php8.2/fpm/Dockerfile @@ -104,8 +104,8 @@ RUN { \ } > /usr/local/etc/php/conf.d/error-logging.ini RUN set -eux; \ - version='6.8.3'; \ - sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + version='6.9-RC3'; \ + sha1='f98c7ce5304d9a3543101678e43a2622f76abcd9'; \ \ curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ diff --git a/beta/php8.3/apache/Dockerfile b/beta/php8.3/apache/Dockerfile index 43fd2d43af..329ef88d33 100644 --- a/beta/php8.3/apache/Dockerfile +++ b/beta/php8.3/apache/Dockerfile @@ -123,8 +123,8 @@ RUN set -eux; \ find /etc/apache2 -type f -name '*.conf' -exec sed -ri 's/([[:space:]]*LogFormat[[:space:]]+"[^"]*)%h([^"]*")/\1%a\2/g' '{}' + RUN set -eux; \ - version='6.8.3'; \ - sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + version='6.9-RC3'; \ + sha1='f98c7ce5304d9a3543101678e43a2622f76abcd9'; \ \ curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ diff --git a/beta/php8.3/fpm-alpine/Dockerfile b/beta/php8.3/fpm-alpine/Dockerfile index 15239cf6bf..1baad5e03f 100644 --- a/beta/php8.3/fpm-alpine/Dockerfile +++ b/beta/php8.3/fpm-alpine/Dockerfile @@ -100,8 +100,8 @@ RUN { \ } > /usr/local/etc/php/conf.d/error-logging.ini RUN set -eux; \ - version='6.8.3'; \ - sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + version='6.9-RC3'; \ + sha1='f98c7ce5304d9a3543101678e43a2622f76abcd9'; \ \ curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ diff --git a/beta/php8.3/fpm/Dockerfile b/beta/php8.3/fpm/Dockerfile index 990d1518ee..ab3c508a7d 100644 --- a/beta/php8.3/fpm/Dockerfile +++ b/beta/php8.3/fpm/Dockerfile @@ -104,8 +104,8 @@ RUN { \ } > /usr/local/etc/php/conf.d/error-logging.ini RUN set -eux; \ - version='6.8.3'; \ - sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + version='6.9-RC3'; \ + sha1='f98c7ce5304d9a3543101678e43a2622f76abcd9'; \ \ curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ diff --git a/beta/php8.4/apache/Dockerfile b/beta/php8.4/apache/Dockerfile index 060592b07e..9e16e66d86 100644 --- a/beta/php8.4/apache/Dockerfile +++ b/beta/php8.4/apache/Dockerfile @@ -123,8 +123,8 @@ RUN set -eux; \ find /etc/apache2 -type f -name '*.conf' -exec sed -ri 's/([[:space:]]*LogFormat[[:space:]]+"[^"]*)%h([^"]*")/\1%a\2/g' '{}' + RUN set -eux; \ - version='6.8.3'; \ - sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + version='6.9-RC3'; \ + sha1='f98c7ce5304d9a3543101678e43a2622f76abcd9'; \ \ curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ diff --git a/beta/php8.4/fpm-alpine/Dockerfile b/beta/php8.4/fpm-alpine/Dockerfile index 33a920f531..6eb5c91a1d 100644 --- a/beta/php8.4/fpm-alpine/Dockerfile +++ b/beta/php8.4/fpm-alpine/Dockerfile @@ -100,8 +100,8 @@ RUN { \ } > /usr/local/etc/php/conf.d/error-logging.ini RUN set -eux; \ - version='6.8.3'; \ - sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + version='6.9-RC3'; \ + sha1='f98c7ce5304d9a3543101678e43a2622f76abcd9'; \ \ curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ diff --git a/beta/php8.4/fpm/Dockerfile b/beta/php8.4/fpm/Dockerfile index bd85559b3c..cc677359c2 100644 --- a/beta/php8.4/fpm/Dockerfile +++ b/beta/php8.4/fpm/Dockerfile @@ -104,8 +104,8 @@ RUN { \ } > /usr/local/etc/php/conf.d/error-logging.ini RUN set -eux; \ - version='6.8.3'; \ - sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + version='6.9-RC3'; \ + sha1='f98c7ce5304d9a3543101678e43a2622f76abcd9'; \ \ curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ diff --git a/latest/php8.5-rc/apache/Dockerfile b/beta/php8.5/apache/Dockerfile similarity index 98% rename from latest/php8.5-rc/apache/Dockerfile rename to beta/php8.5/apache/Dockerfile index 03146f02fa..0caa45d6e3 100644 --- a/latest/php8.5-rc/apache/Dockerfile +++ b/beta/php8.5/apache/Dockerfile @@ -4,7 +4,7 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM php:8.5-rc-apache +FROM php:8.5-apache # persistent dependencies RUN set -eux; \ @@ -123,8 +123,8 @@ RUN set -eux; \ find /etc/apache2 -type f -name '*.conf' -exec sed -ri 's/([[:space:]]*LogFormat[[:space:]]+"[^"]*)%h([^"]*")/\1%a\2/g' '{}' + RUN set -eux; \ - version='6.8.3'; \ - sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + version='6.9-RC3'; \ + sha1='f98c7ce5304d9a3543101678e43a2622f76abcd9'; \ \ curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ diff --git a/beta/php8.5-rc/apache/docker-entrypoint.sh b/beta/php8.5/apache/docker-entrypoint.sh similarity index 100% rename from beta/php8.5-rc/apache/docker-entrypoint.sh rename to beta/php8.5/apache/docker-entrypoint.sh diff --git a/beta/php8.5-rc/apache/wp-config-docker.php b/beta/php8.5/apache/wp-config-docker.php similarity index 100% rename from beta/php8.5-rc/apache/wp-config-docker.php rename to beta/php8.5/apache/wp-config-docker.php diff --git a/beta/php8.5-rc/fpm-alpine/Dockerfile b/beta/php8.5/fpm-alpine/Dockerfile similarity index 98% rename from beta/php8.5-rc/fpm-alpine/Dockerfile rename to beta/php8.5/fpm-alpine/Dockerfile index 9baa78d471..626e992676 100644 --- a/beta/php8.5-rc/fpm-alpine/Dockerfile +++ b/beta/php8.5/fpm-alpine/Dockerfile @@ -4,7 +4,7 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM php:8.5-rc-fpm-alpine +FROM php:8.5-fpm-alpine # persistent dependencies RUN set -eux; \ @@ -100,8 +100,8 @@ RUN { \ } > /usr/local/etc/php/conf.d/error-logging.ini RUN set -eux; \ - version='6.8.3'; \ - sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + version='6.9-RC3'; \ + sha1='f98c7ce5304d9a3543101678e43a2622f76abcd9'; \ \ curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ diff --git a/beta/php8.5-rc/fpm-alpine/docker-entrypoint.sh b/beta/php8.5/fpm-alpine/docker-entrypoint.sh similarity index 100% rename from beta/php8.5-rc/fpm-alpine/docker-entrypoint.sh rename to beta/php8.5/fpm-alpine/docker-entrypoint.sh diff --git a/beta/php8.5-rc/fpm-alpine/wp-config-docker.php b/beta/php8.5/fpm-alpine/wp-config-docker.php similarity index 100% rename from beta/php8.5-rc/fpm-alpine/wp-config-docker.php rename to beta/php8.5/fpm-alpine/wp-config-docker.php diff --git a/beta/php8.5-rc/fpm/Dockerfile b/beta/php8.5/fpm/Dockerfile similarity index 98% rename from beta/php8.5-rc/fpm/Dockerfile rename to beta/php8.5/fpm/Dockerfile index 4614fd6abb..427099d559 100644 --- a/beta/php8.5-rc/fpm/Dockerfile +++ b/beta/php8.5/fpm/Dockerfile @@ -4,7 +4,7 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM php:8.5-rc-fpm +FROM php:8.5-fpm # persistent dependencies RUN set -eux; \ @@ -104,8 +104,8 @@ RUN { \ } > /usr/local/etc/php/conf.d/error-logging.ini RUN set -eux; \ - version='6.8.3'; \ - sha1='fd56bcdc15f1877e45dce67942ea75949ed650e8'; \ + version='6.9-RC3'; \ + sha1='f98c7ce5304d9a3543101678e43a2622f76abcd9'; \ \ curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz"; \ echo "$sha1 *wordpress.tar.gz" | sha1sum -c -; \ diff --git a/beta/php8.5-rc/fpm/docker-entrypoint.sh b/beta/php8.5/fpm/docker-entrypoint.sh similarity index 100% rename from beta/php8.5-rc/fpm/docker-entrypoint.sh rename to beta/php8.5/fpm/docker-entrypoint.sh diff --git a/beta/php8.5-rc/fpm/wp-config-docker.php b/beta/php8.5/fpm/wp-config-docker.php similarity index 100% rename from beta/php8.5-rc/fpm/wp-config-docker.php rename to beta/php8.5/fpm/wp-config-docker.php diff --git a/cli/php8.5-rc/alpine/Dockerfile b/cli/php8.5/alpine/Dockerfile similarity index 99% rename from cli/php8.5-rc/alpine/Dockerfile rename to cli/php8.5/alpine/Dockerfile index 19dd0f6d8f..f8f887b9e2 100644 --- a/cli/php8.5-rc/alpine/Dockerfile +++ b/cli/php8.5/alpine/Dockerfile @@ -4,7 +4,7 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM php:8.5-rc-alpine +FROM php:8.5-alpine # install wp-cli dependencies RUN apk add --no-cache \ diff --git a/cli/php8.5-rc/alpine/docker-entrypoint.sh b/cli/php8.5/alpine/docker-entrypoint.sh similarity index 100% rename from cli/php8.5-rc/alpine/docker-entrypoint.sh rename to cli/php8.5/alpine/docker-entrypoint.sh diff --git a/beta/php8.5-rc/apache/Dockerfile b/latest/php8.5/apache/Dockerfile similarity index 99% rename from beta/php8.5-rc/apache/Dockerfile rename to latest/php8.5/apache/Dockerfile index 03146f02fa..d4c836deec 100644 --- a/beta/php8.5-rc/apache/Dockerfile +++ b/latest/php8.5/apache/Dockerfile @@ -4,7 +4,7 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM php:8.5-rc-apache +FROM php:8.5-apache # persistent dependencies RUN set -eux; \ diff --git a/latest/php8.5-rc/apache/docker-entrypoint.sh b/latest/php8.5/apache/docker-entrypoint.sh similarity index 100% rename from latest/php8.5-rc/apache/docker-entrypoint.sh rename to latest/php8.5/apache/docker-entrypoint.sh diff --git a/latest/php8.5-rc/apache/wp-config-docker.php b/latest/php8.5/apache/wp-config-docker.php similarity index 100% rename from latest/php8.5-rc/apache/wp-config-docker.php rename to latest/php8.5/apache/wp-config-docker.php diff --git a/latest/php8.5-rc/fpm-alpine/Dockerfile b/latest/php8.5/fpm-alpine/Dockerfile similarity index 99% rename from latest/php8.5-rc/fpm-alpine/Dockerfile rename to latest/php8.5/fpm-alpine/Dockerfile index 9baa78d471..0b9b366ef2 100644 --- a/latest/php8.5-rc/fpm-alpine/Dockerfile +++ b/latest/php8.5/fpm-alpine/Dockerfile @@ -4,7 +4,7 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM php:8.5-rc-fpm-alpine +FROM php:8.5-fpm-alpine # persistent dependencies RUN set -eux; \ diff --git a/latest/php8.5-rc/fpm-alpine/docker-entrypoint.sh b/latest/php8.5/fpm-alpine/docker-entrypoint.sh similarity index 100% rename from latest/php8.5-rc/fpm-alpine/docker-entrypoint.sh rename to latest/php8.5/fpm-alpine/docker-entrypoint.sh diff --git a/latest/php8.5-rc/fpm-alpine/wp-config-docker.php b/latest/php8.5/fpm-alpine/wp-config-docker.php similarity index 100% rename from latest/php8.5-rc/fpm-alpine/wp-config-docker.php rename to latest/php8.5/fpm-alpine/wp-config-docker.php diff --git a/latest/php8.5-rc/fpm/Dockerfile b/latest/php8.5/fpm/Dockerfile similarity index 99% rename from latest/php8.5-rc/fpm/Dockerfile rename to latest/php8.5/fpm/Dockerfile index 4614fd6abb..98fc227960 100644 --- a/latest/php8.5-rc/fpm/Dockerfile +++ b/latest/php8.5/fpm/Dockerfile @@ -4,7 +4,7 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM php:8.5-rc-fpm +FROM php:8.5-fpm # persistent dependencies RUN set -eux; \ diff --git a/latest/php8.5-rc/fpm/docker-entrypoint.sh b/latest/php8.5/fpm/docker-entrypoint.sh similarity index 100% rename from latest/php8.5-rc/fpm/docker-entrypoint.sh rename to latest/php8.5/fpm/docker-entrypoint.sh diff --git a/latest/php8.5-rc/fpm/wp-config-docker.php b/latest/php8.5/fpm/wp-config-docker.php similarity index 100% rename from latest/php8.5-rc/fpm/wp-config-docker.php rename to latest/php8.5/fpm/wp-config-docker.php diff --git a/versions.json b/versions.json index f641f3a5f1..b05c359871 100644 --- a/versions.json +++ b/versions.json @@ -5,16 +5,16 @@ "8.2", "8.3", "8.4", - "8.5-rc" + "8.5" ], - "sha1": "fd56bcdc15f1877e45dce67942ea75949ed650e8", - "upstream": "6.8.3", + "sha1": "f98c7ce5304d9a3543101678e43a2622f76abcd9", + "upstream": "6.9-RC3", "variants": [ "apache", "fpm", "fpm-alpine" ], - "version": "6.8.3" + "version": "6.9-RC3" }, "cli": { "phpVersions": [ @@ -22,7 +22,7 @@ "8.2", "8.3", "8.4", - "8.5-rc" + "8.5" ], "sha512": "be928f6b8ca1e8dfb9d2f4b75a13aa4aee0896f8a9a0a1c45cd5d2c98605e6172e6d014dda2e27f88c98befc16c040cbb2bd1bfa121510ea5cdf5f6a30fe8832", "variants": [ @@ -36,7 +36,7 @@ "8.2", "8.3", "8.4", - "8.5-rc" + "8.5" ], "sha1": "fd56bcdc15f1877e45dce67942ea75949ed650e8", "upstream": "6.8.3", From bd4829b9fff9d615d33e6c86e2b8e0144d61bfe3 Mon Sep 17 00:00:00 2001 From: Pascal Birchler Date: Thu, 27 Nov 2025 11:13:48 +0100 Subject: [PATCH 3/4] Use Imagick 3.8.1 --- Dockerfile.template | 2 +- beta/php8.1/apache/Dockerfile | 2 +- beta/php8.1/fpm-alpine/Dockerfile | 2 +- beta/php8.1/fpm/Dockerfile | 2 +- beta/php8.2/apache/Dockerfile | 2 +- beta/php8.2/fpm-alpine/Dockerfile | 2 +- beta/php8.2/fpm/Dockerfile | 2 +- beta/php8.3/apache/Dockerfile | 2 +- beta/php8.3/fpm-alpine/Dockerfile | 2 +- beta/php8.3/fpm/Dockerfile | 2 +- beta/php8.4/apache/Dockerfile | 2 +- beta/php8.4/fpm-alpine/Dockerfile | 2 +- beta/php8.4/fpm/Dockerfile | 2 +- beta/php8.5/apache/Dockerfile | 2 +- beta/php8.5/fpm-alpine/Dockerfile | 2 +- beta/php8.5/fpm/Dockerfile | 2 +- cli/php8.1/alpine/Dockerfile | 2 +- cli/php8.2/alpine/Dockerfile | 2 +- cli/php8.3/alpine/Dockerfile | 2 +- cli/php8.4/alpine/Dockerfile | 2 +- cli/php8.5/alpine/Dockerfile | 2 +- latest/php8.1/apache/Dockerfile | 2 +- latest/php8.1/fpm-alpine/Dockerfile | 2 +- latest/php8.1/fpm/Dockerfile | 2 +- latest/php8.2/apache/Dockerfile | 2 +- latest/php8.2/fpm-alpine/Dockerfile | 2 +- latest/php8.2/fpm/Dockerfile | 2 +- latest/php8.3/apache/Dockerfile | 2 +- latest/php8.3/fpm-alpine/Dockerfile | 2 +- latest/php8.3/fpm/Dockerfile | 2 +- latest/php8.4/apache/Dockerfile | 2 +- latest/php8.4/fpm-alpine/Dockerfile | 2 +- latest/php8.4/fpm/Dockerfile | 2 +- latest/php8.5/apache/Dockerfile | 2 +- latest/php8.5/fpm-alpine/Dockerfile | 2 +- latest/php8.5/fpm/Dockerfile | 2 +- 36 files changed, 36 insertions(+), 36 deletions(-) diff --git a/Dockerfile.template b/Dockerfile.template index ec89d40fee..a41caf02ff 100644 --- a/Dockerfile.template +++ b/Dockerfile.template @@ -88,7 +88,7 @@ RUN set -ex; \ # WARNING: imagick is likely not supported on Alpine: https://github.com/Imagick/imagick/issues/328 {{ ) else "" end -}} # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/beta/php8.1/apache/Dockerfile b/beta/php8.1/apache/Dockerfile index e8d44f8513..73481530b0 100644 --- a/beta/php8.1/apache/Dockerfile +++ b/beta/php8.1/apache/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/beta/php8.1/fpm-alpine/Dockerfile b/beta/php8.1/fpm-alpine/Dockerfile index f5811695be..add50eb712 100644 --- a/beta/php8.1/fpm-alpine/Dockerfile +++ b/beta/php8.1/fpm-alpine/Dockerfile @@ -48,7 +48,7 @@ RUN set -ex; \ ; \ # WARNING: imagick is likely not supported on Alpine: https://github.com/Imagick/imagick/issues/328 # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/beta/php8.1/fpm/Dockerfile b/beta/php8.1/fpm/Dockerfile index 27d9b31306..e74556181a 100644 --- a/beta/php8.1/fpm/Dockerfile +++ b/beta/php8.1/fpm/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/beta/php8.2/apache/Dockerfile b/beta/php8.2/apache/Dockerfile index 38cb1737d3..fd5f4c0ee1 100644 --- a/beta/php8.2/apache/Dockerfile +++ b/beta/php8.2/apache/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/beta/php8.2/fpm-alpine/Dockerfile b/beta/php8.2/fpm-alpine/Dockerfile index b7e405419a..46d63912ed 100644 --- a/beta/php8.2/fpm-alpine/Dockerfile +++ b/beta/php8.2/fpm-alpine/Dockerfile @@ -48,7 +48,7 @@ RUN set -ex; \ ; \ # WARNING: imagick is likely not supported on Alpine: https://github.com/Imagick/imagick/issues/328 # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/beta/php8.2/fpm/Dockerfile b/beta/php8.2/fpm/Dockerfile index ea8ff90a9d..ab40cec7dd 100644 --- a/beta/php8.2/fpm/Dockerfile +++ b/beta/php8.2/fpm/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/beta/php8.3/apache/Dockerfile b/beta/php8.3/apache/Dockerfile index 329ef88d33..c61d9ffeec 100644 --- a/beta/php8.3/apache/Dockerfile +++ b/beta/php8.3/apache/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/beta/php8.3/fpm-alpine/Dockerfile b/beta/php8.3/fpm-alpine/Dockerfile index 1baad5e03f..8a47bf0fb7 100644 --- a/beta/php8.3/fpm-alpine/Dockerfile +++ b/beta/php8.3/fpm-alpine/Dockerfile @@ -48,7 +48,7 @@ RUN set -ex; \ ; \ # WARNING: imagick is likely not supported on Alpine: https://github.com/Imagick/imagick/issues/328 # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/beta/php8.3/fpm/Dockerfile b/beta/php8.3/fpm/Dockerfile index ab3c508a7d..c483fe5cd8 100644 --- a/beta/php8.3/fpm/Dockerfile +++ b/beta/php8.3/fpm/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/beta/php8.4/apache/Dockerfile b/beta/php8.4/apache/Dockerfile index 9e16e66d86..c5f5d8b964 100644 --- a/beta/php8.4/apache/Dockerfile +++ b/beta/php8.4/apache/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/beta/php8.4/fpm-alpine/Dockerfile b/beta/php8.4/fpm-alpine/Dockerfile index 6eb5c91a1d..89d80e39d0 100644 --- a/beta/php8.4/fpm-alpine/Dockerfile +++ b/beta/php8.4/fpm-alpine/Dockerfile @@ -48,7 +48,7 @@ RUN set -ex; \ ; \ # WARNING: imagick is likely not supported on Alpine: https://github.com/Imagick/imagick/issues/328 # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/beta/php8.4/fpm/Dockerfile b/beta/php8.4/fpm/Dockerfile index cc677359c2..d4fdfd139c 100644 --- a/beta/php8.4/fpm/Dockerfile +++ b/beta/php8.4/fpm/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/beta/php8.5/apache/Dockerfile b/beta/php8.5/apache/Dockerfile index 0caa45d6e3..dbd72fca9f 100644 --- a/beta/php8.5/apache/Dockerfile +++ b/beta/php8.5/apache/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/beta/php8.5/fpm-alpine/Dockerfile b/beta/php8.5/fpm-alpine/Dockerfile index 626e992676..004e1e6885 100644 --- a/beta/php8.5/fpm-alpine/Dockerfile +++ b/beta/php8.5/fpm-alpine/Dockerfile @@ -48,7 +48,7 @@ RUN set -ex; \ ; \ # WARNING: imagick is likely not supported on Alpine: https://github.com/Imagick/imagick/issues/328 # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/beta/php8.5/fpm/Dockerfile b/beta/php8.5/fpm/Dockerfile index 427099d559..744a8c86f5 100644 --- a/beta/php8.5/fpm/Dockerfile +++ b/beta/php8.5/fpm/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/cli/php8.1/alpine/Dockerfile b/cli/php8.1/alpine/Dockerfile index 3c9cce78a5..bc5e01cb65 100644 --- a/cli/php8.1/alpine/Dockerfile +++ b/cli/php8.1/alpine/Dockerfile @@ -49,7 +49,7 @@ RUN set -ex; \ ; \ # WARNING: imagick is likely not supported on Alpine: https://github.com/Imagick/imagick/issues/328 # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/cli/php8.2/alpine/Dockerfile b/cli/php8.2/alpine/Dockerfile index c52674def4..ed1591fe35 100644 --- a/cli/php8.2/alpine/Dockerfile +++ b/cli/php8.2/alpine/Dockerfile @@ -49,7 +49,7 @@ RUN set -ex; \ ; \ # WARNING: imagick is likely not supported on Alpine: https://github.com/Imagick/imagick/issues/328 # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/cli/php8.3/alpine/Dockerfile b/cli/php8.3/alpine/Dockerfile index 8fd438cde1..fa794a4a99 100644 --- a/cli/php8.3/alpine/Dockerfile +++ b/cli/php8.3/alpine/Dockerfile @@ -49,7 +49,7 @@ RUN set -ex; \ ; \ # WARNING: imagick is likely not supported on Alpine: https://github.com/Imagick/imagick/issues/328 # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/cli/php8.4/alpine/Dockerfile b/cli/php8.4/alpine/Dockerfile index 8e66e65627..2ecb12201e 100644 --- a/cli/php8.4/alpine/Dockerfile +++ b/cli/php8.4/alpine/Dockerfile @@ -49,7 +49,7 @@ RUN set -ex; \ ; \ # WARNING: imagick is likely not supported on Alpine: https://github.com/Imagick/imagick/issues/328 # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/cli/php8.5/alpine/Dockerfile b/cli/php8.5/alpine/Dockerfile index f8f887b9e2..50fb5c70e3 100644 --- a/cli/php8.5/alpine/Dockerfile +++ b/cli/php8.5/alpine/Dockerfile @@ -49,7 +49,7 @@ RUN set -ex; \ ; \ # WARNING: imagick is likely not supported on Alpine: https://github.com/Imagick/imagick/issues/328 # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/latest/php8.1/apache/Dockerfile b/latest/php8.1/apache/Dockerfile index 696e787b53..85539dab26 100644 --- a/latest/php8.1/apache/Dockerfile +++ b/latest/php8.1/apache/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/latest/php8.1/fpm-alpine/Dockerfile b/latest/php8.1/fpm-alpine/Dockerfile index 868d4f49c2..e850c9921e 100644 --- a/latest/php8.1/fpm-alpine/Dockerfile +++ b/latest/php8.1/fpm-alpine/Dockerfile @@ -48,7 +48,7 @@ RUN set -ex; \ ; \ # WARNING: imagick is likely not supported on Alpine: https://github.com/Imagick/imagick/issues/328 # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/latest/php8.1/fpm/Dockerfile b/latest/php8.1/fpm/Dockerfile index ad7b1d6ca7..e1365aef46 100644 --- a/latest/php8.1/fpm/Dockerfile +++ b/latest/php8.1/fpm/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/latest/php8.2/apache/Dockerfile b/latest/php8.2/apache/Dockerfile index 15cda0bec9..8178ecaaa9 100644 --- a/latest/php8.2/apache/Dockerfile +++ b/latest/php8.2/apache/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/latest/php8.2/fpm-alpine/Dockerfile b/latest/php8.2/fpm-alpine/Dockerfile index 0f821b9bd5..1a809f3bce 100644 --- a/latest/php8.2/fpm-alpine/Dockerfile +++ b/latest/php8.2/fpm-alpine/Dockerfile @@ -48,7 +48,7 @@ RUN set -ex; \ ; \ # WARNING: imagick is likely not supported on Alpine: https://github.com/Imagick/imagick/issues/328 # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/latest/php8.2/fpm/Dockerfile b/latest/php8.2/fpm/Dockerfile index 9fe5bbd1ec..a52df3508d 100644 --- a/latest/php8.2/fpm/Dockerfile +++ b/latest/php8.2/fpm/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/latest/php8.3/apache/Dockerfile b/latest/php8.3/apache/Dockerfile index 43fd2d43af..359c0d0bda 100644 --- a/latest/php8.3/apache/Dockerfile +++ b/latest/php8.3/apache/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/latest/php8.3/fpm-alpine/Dockerfile b/latest/php8.3/fpm-alpine/Dockerfile index 15239cf6bf..f806652e2a 100644 --- a/latest/php8.3/fpm-alpine/Dockerfile +++ b/latest/php8.3/fpm-alpine/Dockerfile @@ -48,7 +48,7 @@ RUN set -ex; \ ; \ # WARNING: imagick is likely not supported on Alpine: https://github.com/Imagick/imagick/issues/328 # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/latest/php8.3/fpm/Dockerfile b/latest/php8.3/fpm/Dockerfile index 990d1518ee..af603adc69 100644 --- a/latest/php8.3/fpm/Dockerfile +++ b/latest/php8.3/fpm/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/latest/php8.4/apache/Dockerfile b/latest/php8.4/apache/Dockerfile index 060592b07e..9fd9939744 100644 --- a/latest/php8.4/apache/Dockerfile +++ b/latest/php8.4/apache/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/latest/php8.4/fpm-alpine/Dockerfile b/latest/php8.4/fpm-alpine/Dockerfile index 33a920f531..ed1e01335b 100644 --- a/latest/php8.4/fpm-alpine/Dockerfile +++ b/latest/php8.4/fpm-alpine/Dockerfile @@ -48,7 +48,7 @@ RUN set -ex; \ ; \ # WARNING: imagick is likely not supported on Alpine: https://github.com/Imagick/imagick/issues/328 # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/latest/php8.4/fpm/Dockerfile b/latest/php8.4/fpm/Dockerfile index bd85559b3c..bb9c47f8f7 100644 --- a/latest/php8.4/fpm/Dockerfile +++ b/latest/php8.4/fpm/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/latest/php8.5/apache/Dockerfile b/latest/php8.5/apache/Dockerfile index d4c836deec..31553b280e 100644 --- a/latest/php8.5/apache/Dockerfile +++ b/latest/php8.5/apache/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/latest/php8.5/fpm-alpine/Dockerfile b/latest/php8.5/fpm-alpine/Dockerfile index 0b9b366ef2..e0c58eee4e 100644 --- a/latest/php8.5/fpm-alpine/Dockerfile +++ b/latest/php8.5/fpm-alpine/Dockerfile @@ -48,7 +48,7 @@ RUN set -ex; \ ; \ # WARNING: imagick is likely not supported on Alpine: https://github.com/Imagick/imagick/issues/328 # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ diff --git a/latest/php8.5/fpm/Dockerfile b/latest/php8.5/fpm/Dockerfile index 98fc227960..7ab8c5464d 100644 --- a/latest/php8.5/fpm/Dockerfile +++ b/latest/php8.5/fpm/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ zip \ ; \ # https://pecl.php.net/package/imagick - pecl install imagick-3.8.0; \ + pecl install imagick-3.8.1; \ docker-php-ext-enable imagick; \ rm -r /tmp/pear; \ \ From 1174fc3095d757baa3149ecdf82d217a547aa926 Mon Sep 17 00:00:00 2001 From: Pascal Birchler Date: Thu, 27 Nov 2025 11:21:19 +0100 Subject: [PATCH 4/4] Remove `docker-php-ext-enable opcache` line --- Dockerfile.template | 1 - beta/php8.1/apache/Dockerfile | 1 - beta/php8.1/fpm-alpine/Dockerfile | 1 - beta/php8.1/fpm/Dockerfile | 1 - beta/php8.2/apache/Dockerfile | 1 - beta/php8.2/fpm-alpine/Dockerfile | 1 - beta/php8.2/fpm/Dockerfile | 1 - beta/php8.3/apache/Dockerfile | 1 - beta/php8.3/fpm-alpine/Dockerfile | 1 - beta/php8.3/fpm/Dockerfile | 1 - beta/php8.4/apache/Dockerfile | 1 - beta/php8.4/fpm-alpine/Dockerfile | 1 - beta/php8.4/fpm/Dockerfile | 1 - beta/php8.5/apache/Dockerfile | 1 - beta/php8.5/fpm-alpine/Dockerfile | 1 - beta/php8.5/fpm/Dockerfile | 1 - latest/php8.1/apache/Dockerfile | 1 - latest/php8.1/fpm-alpine/Dockerfile | 1 - latest/php8.1/fpm/Dockerfile | 1 - latest/php8.2/apache/Dockerfile | 1 - latest/php8.2/fpm-alpine/Dockerfile | 1 - latest/php8.2/fpm/Dockerfile | 1 - latest/php8.3/apache/Dockerfile | 1 - latest/php8.3/fpm-alpine/Dockerfile | 1 - latest/php8.3/fpm/Dockerfile | 1 - latest/php8.4/apache/Dockerfile | 1 - latest/php8.4/fpm-alpine/Dockerfile | 1 - latest/php8.4/fpm/Dockerfile | 1 - latest/php8.5/apache/Dockerfile | 1 - latest/php8.5/fpm-alpine/Dockerfile | 1 - latest/php8.5/fpm/Dockerfile | 1 - 31 files changed, 31 deletions(-) diff --git a/Dockerfile.template b/Dockerfile.template index a41caf02ff..1f9c256d4d 100644 --- a/Dockerfile.template +++ b/Dockerfile.template @@ -134,7 +134,6 @@ RUN set -ex; \ {{ if env.version != "cli" then ( -}} # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/beta/php8.1/apache/Dockerfile b/beta/php8.1/apache/Dockerfile index 73481530b0..1d69009639 100644 --- a/beta/php8.1/apache/Dockerfile +++ b/beta/php8.1/apache/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/beta/php8.1/fpm-alpine/Dockerfile b/beta/php8.1/fpm-alpine/Dockerfile index add50eb712..71f61f9c31 100644 --- a/beta/php8.1/fpm-alpine/Dockerfile +++ b/beta/php8.1/fpm-alpine/Dockerfile @@ -77,7 +77,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/beta/php8.1/fpm/Dockerfile b/beta/php8.1/fpm/Dockerfile index e74556181a..a20d9fb38f 100644 --- a/beta/php8.1/fpm/Dockerfile +++ b/beta/php8.1/fpm/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/beta/php8.2/apache/Dockerfile b/beta/php8.2/apache/Dockerfile index fd5f4c0ee1..cbb0787b39 100644 --- a/beta/php8.2/apache/Dockerfile +++ b/beta/php8.2/apache/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/beta/php8.2/fpm-alpine/Dockerfile b/beta/php8.2/fpm-alpine/Dockerfile index 46d63912ed..a89761b3eb 100644 --- a/beta/php8.2/fpm-alpine/Dockerfile +++ b/beta/php8.2/fpm-alpine/Dockerfile @@ -77,7 +77,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/beta/php8.2/fpm/Dockerfile b/beta/php8.2/fpm/Dockerfile index ab40cec7dd..8833116ab3 100644 --- a/beta/php8.2/fpm/Dockerfile +++ b/beta/php8.2/fpm/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/beta/php8.3/apache/Dockerfile b/beta/php8.3/apache/Dockerfile index c61d9ffeec..0536b21435 100644 --- a/beta/php8.3/apache/Dockerfile +++ b/beta/php8.3/apache/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/beta/php8.3/fpm-alpine/Dockerfile b/beta/php8.3/fpm-alpine/Dockerfile index 8a47bf0fb7..5cfed54ff1 100644 --- a/beta/php8.3/fpm-alpine/Dockerfile +++ b/beta/php8.3/fpm-alpine/Dockerfile @@ -77,7 +77,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/beta/php8.3/fpm/Dockerfile b/beta/php8.3/fpm/Dockerfile index c483fe5cd8..7dd725c9f8 100644 --- a/beta/php8.3/fpm/Dockerfile +++ b/beta/php8.3/fpm/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/beta/php8.4/apache/Dockerfile b/beta/php8.4/apache/Dockerfile index c5f5d8b964..f350c66cbd 100644 --- a/beta/php8.4/apache/Dockerfile +++ b/beta/php8.4/apache/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/beta/php8.4/fpm-alpine/Dockerfile b/beta/php8.4/fpm-alpine/Dockerfile index 89d80e39d0..2823127659 100644 --- a/beta/php8.4/fpm-alpine/Dockerfile +++ b/beta/php8.4/fpm-alpine/Dockerfile @@ -77,7 +77,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/beta/php8.4/fpm/Dockerfile b/beta/php8.4/fpm/Dockerfile index d4fdfd139c..9b8b93d82e 100644 --- a/beta/php8.4/fpm/Dockerfile +++ b/beta/php8.4/fpm/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/beta/php8.5/apache/Dockerfile b/beta/php8.5/apache/Dockerfile index dbd72fca9f..1a5faf3db5 100644 --- a/beta/php8.5/apache/Dockerfile +++ b/beta/php8.5/apache/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/beta/php8.5/fpm-alpine/Dockerfile b/beta/php8.5/fpm-alpine/Dockerfile index 004e1e6885..6065a38fe7 100644 --- a/beta/php8.5/fpm-alpine/Dockerfile +++ b/beta/php8.5/fpm-alpine/Dockerfile @@ -77,7 +77,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/beta/php8.5/fpm/Dockerfile b/beta/php8.5/fpm/Dockerfile index 744a8c86f5..26eed8e8cd 100644 --- a/beta/php8.5/fpm/Dockerfile +++ b/beta/php8.5/fpm/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/latest/php8.1/apache/Dockerfile b/latest/php8.1/apache/Dockerfile index 85539dab26..7c74d0e128 100644 --- a/latest/php8.1/apache/Dockerfile +++ b/latest/php8.1/apache/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/latest/php8.1/fpm-alpine/Dockerfile b/latest/php8.1/fpm-alpine/Dockerfile index e850c9921e..65a9cd0e3a 100644 --- a/latest/php8.1/fpm-alpine/Dockerfile +++ b/latest/php8.1/fpm-alpine/Dockerfile @@ -77,7 +77,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/latest/php8.1/fpm/Dockerfile b/latest/php8.1/fpm/Dockerfile index e1365aef46..7327e07847 100644 --- a/latest/php8.1/fpm/Dockerfile +++ b/latest/php8.1/fpm/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/latest/php8.2/apache/Dockerfile b/latest/php8.2/apache/Dockerfile index 8178ecaaa9..d78d7b21bb 100644 --- a/latest/php8.2/apache/Dockerfile +++ b/latest/php8.2/apache/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/latest/php8.2/fpm-alpine/Dockerfile b/latest/php8.2/fpm-alpine/Dockerfile index 1a809f3bce..f819c0b049 100644 --- a/latest/php8.2/fpm-alpine/Dockerfile +++ b/latest/php8.2/fpm-alpine/Dockerfile @@ -77,7 +77,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/latest/php8.2/fpm/Dockerfile b/latest/php8.2/fpm/Dockerfile index a52df3508d..0218e1a391 100644 --- a/latest/php8.2/fpm/Dockerfile +++ b/latest/php8.2/fpm/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/latest/php8.3/apache/Dockerfile b/latest/php8.3/apache/Dockerfile index 359c0d0bda..750a8bf1a9 100644 --- a/latest/php8.3/apache/Dockerfile +++ b/latest/php8.3/apache/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/latest/php8.3/fpm-alpine/Dockerfile b/latest/php8.3/fpm-alpine/Dockerfile index f806652e2a..d858d341dd 100644 --- a/latest/php8.3/fpm-alpine/Dockerfile +++ b/latest/php8.3/fpm-alpine/Dockerfile @@ -77,7 +77,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/latest/php8.3/fpm/Dockerfile b/latest/php8.3/fpm/Dockerfile index af603adc69..491fc8d895 100644 --- a/latest/php8.3/fpm/Dockerfile +++ b/latest/php8.3/fpm/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/latest/php8.4/apache/Dockerfile b/latest/php8.4/apache/Dockerfile index 9fd9939744..27b5ae8f3a 100644 --- a/latest/php8.4/apache/Dockerfile +++ b/latest/php8.4/apache/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/latest/php8.4/fpm-alpine/Dockerfile b/latest/php8.4/fpm-alpine/Dockerfile index ed1e01335b..3a9ad1987f 100644 --- a/latest/php8.4/fpm-alpine/Dockerfile +++ b/latest/php8.4/fpm-alpine/Dockerfile @@ -77,7 +77,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/latest/php8.4/fpm/Dockerfile b/latest/php8.4/fpm/Dockerfile index bb9c47f8f7..36328c4781 100644 --- a/latest/php8.4/fpm/Dockerfile +++ b/latest/php8.4/fpm/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/latest/php8.5/apache/Dockerfile b/latest/php8.5/apache/Dockerfile index 31553b280e..87b5de1270 100644 --- a/latest/php8.5/apache/Dockerfile +++ b/latest/php8.5/apache/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/latest/php8.5/fpm-alpine/Dockerfile b/latest/php8.5/fpm-alpine/Dockerfile index e0c58eee4e..3da7d7f3d2 100644 --- a/latest/php8.5/fpm-alpine/Dockerfile +++ b/latest/php8.5/fpm-alpine/Dockerfile @@ -77,7 +77,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \ diff --git a/latest/php8.5/fpm/Dockerfile b/latest/php8.5/fpm/Dockerfile index 7ab8c5464d..20b5a8c1ab 100644 --- a/latest/php8.5/fpm/Dockerfile +++ b/latest/php8.5/fpm/Dockerfile @@ -81,7 +81,6 @@ RUN set -ex; \ # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN set -eux; \ - docker-php-ext-enable opcache; \ { \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.interned_strings_buffer=8'; \