diff --git a/10.0/php8.2/apache-buster/Dockerfile b/10.0/php8.1/apache-bookworm/Dockerfile similarity index 93% rename from 10.0/php8.2/apache-buster/Dockerfile rename to 10.0/php8.1/apache-bookworm/Dockerfile index bf1896b2e..ab6303f10 100644 --- a/10.0/php8.2/apache-buster/Dockerfile +++ b/10.0/php8.1/apache-bookworm/Dockerfile @@ -5,7 +5,7 @@ # # from https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.2-apache-buster +FROM php:8.1-apache-bookworm # install the PHP extensions we need RUN set -eux; \ @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/10.0/php8.1/apache-bullseye/Dockerfile b/10.0/php8.1/apache-bullseye/Dockerfile index fced652ee..544fb2c9f 100644 --- a/10.0/php8.1/apache-bullseye/Dockerfile +++ b/10.0/php8.1/apache-bullseye/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/10.0/php8.1/apache-buster/Dockerfile b/10.0/php8.1/fpm-bookworm/Dockerfile similarity index 93% rename from 10.0/php8.1/apache-buster/Dockerfile rename to 10.0/php8.1/fpm-bookworm/Dockerfile index 78c6a01d8..35e5861b9 100644 --- a/10.0/php8.1/apache-buster/Dockerfile +++ b/10.0/php8.1/fpm-bookworm/Dockerfile @@ -5,7 +5,7 @@ # # from https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.1-apache-buster +FROM php:8.1-fpm-bookworm # install the PHP extensions we need RUN set -eux; \ @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/10.0/php8.1/fpm-bullseye/Dockerfile b/10.0/php8.1/fpm-bullseye/Dockerfile index 341240898..a7e8d9d3e 100644 --- a/10.0/php8.1/fpm-bullseye/Dockerfile +++ b/10.0/php8.1/fpm-bullseye/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/10.0/php8.2/fpm-buster/Dockerfile b/10.0/php8.2/apache-bookworm/Dockerfile similarity index 93% rename from 10.0/php8.2/fpm-buster/Dockerfile rename to 10.0/php8.2/apache-bookworm/Dockerfile index 3095b66c2..e6c5dd802 100644 --- a/10.0/php8.2/fpm-buster/Dockerfile +++ b/10.0/php8.2/apache-bookworm/Dockerfile @@ -5,7 +5,7 @@ # # from https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.2-fpm-buster +FROM php:8.2-apache-bookworm # install the PHP extensions we need RUN set -eux; \ @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/10.0/php8.2/apache-bullseye/Dockerfile b/10.0/php8.2/apache-bullseye/Dockerfile index 5f2e2001b..b16a71296 100644 --- a/10.0/php8.2/apache-bullseye/Dockerfile +++ b/10.0/php8.2/apache-bullseye/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/10.0/php8.1/fpm-buster/Dockerfile b/10.0/php8.2/fpm-bookworm/Dockerfile similarity index 93% rename from 10.0/php8.1/fpm-buster/Dockerfile rename to 10.0/php8.2/fpm-bookworm/Dockerfile index 07a713df3..752c9e585 100644 --- a/10.0/php8.1/fpm-buster/Dockerfile +++ b/10.0/php8.2/fpm-bookworm/Dockerfile @@ -5,7 +5,7 @@ # # from https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.1-fpm-buster +FROM php:8.2-fpm-bookworm # install the PHP extensions we need RUN set -eux; \ @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/10.0/php8.2/fpm-bullseye/Dockerfile b/10.0/php8.2/fpm-bullseye/Dockerfile index c16e72ba0..492c71b7b 100644 --- a/10.0/php8.2/fpm-bullseye/Dockerfile +++ b/10.0/php8.2/fpm-bullseye/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/7/php8.0/apache-bullseye/Dockerfile b/7/php8.0/apache-bullseye/Dockerfile index 7d7887575..b15d1b962 100644 --- a/7/php8.0/apache-bullseye/Dockerfile +++ b/7/php8.0/apache-bullseye/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/7/php8.0/apache-buster/Dockerfile b/7/php8.0/apache-buster/Dockerfile index 1be4d7fb3..eebd12372 100644 --- a/7/php8.0/apache-buster/Dockerfile +++ b/7/php8.0/apache-buster/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/7/php8.0/fpm-bullseye/Dockerfile b/7/php8.0/fpm-bullseye/Dockerfile index ac318481a..1ba214e22 100644 --- a/7/php8.0/fpm-bullseye/Dockerfile +++ b/7/php8.0/fpm-bullseye/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/7/php8.0/fpm-buster/Dockerfile b/7/php8.0/fpm-buster/Dockerfile index 8d556922f..d898a3900 100644 --- a/7/php8.0/fpm-buster/Dockerfile +++ b/7/php8.0/fpm-buster/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/7/php8.1/apache-bookworm/Dockerfile b/7/php8.1/apache-bookworm/Dockerfile new file mode 100644 index 000000000..2b68d2fa8 --- /dev/null +++ b/7/php8.1/apache-bookworm/Dockerfile @@ -0,0 +1,77 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.1-apache-bookworm + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ + a2enmod rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 7.98 +ENV DRUPAL_MD5 4139f0feecb44a53645242194809b73a + +RUN set -eux; \ + curl -fSL "https://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz; \ + echo "${DRUPAL_MD5} *drupal.tar.gz" | md5sum -c -; \ + tar -xz --strip-components=1 -f drupal.tar.gz; \ + rm drupal.tar.gz; \ + chown -R www-data:www-data sites modules themes + +# vim:set ft=dockerfile: diff --git a/7/php8.1/apache-bullseye/Dockerfile b/7/php8.1/apache-bullseye/Dockerfile new file mode 100644 index 000000000..56dcae1f0 --- /dev/null +++ b/7/php8.1/apache-bullseye/Dockerfile @@ -0,0 +1,77 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.1-apache-bullseye + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ + a2enmod rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 7.98 +ENV DRUPAL_MD5 4139f0feecb44a53645242194809b73a + +RUN set -eux; \ + curl -fSL "https://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz; \ + echo "${DRUPAL_MD5} *drupal.tar.gz" | md5sum -c -; \ + tar -xz --strip-components=1 -f drupal.tar.gz; \ + rm drupal.tar.gz; \ + chown -R www-data:www-data sites modules themes + +# vim:set ft=dockerfile: diff --git a/7/php8.1/fpm-alpine3.17/Dockerfile b/7/php8.1/fpm-alpine3.17/Dockerfile new file mode 100644 index 000000000..628aa8a3d --- /dev/null +++ b/7/php8.1/fpm-alpine3.17/Dockerfile @@ -0,0 +1,67 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.1-fpm-alpine3.17 + +# install the PHP extensions we need +RUN set -eux; \ + \ + apk add --no-cache --virtual .build-deps \ + coreutils \ + freetype-dev \ + libjpeg-turbo-dev \ + libpng-dev \ + libwebp-dev \ + libzip-dev \ +# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642 + postgresql-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr/include \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps; \ + apk del --no-network .build-deps + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 7.98 +ENV DRUPAL_MD5 4139f0feecb44a53645242194809b73a + +RUN set -eux; \ + curl -fSL "https://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz; \ + echo "${DRUPAL_MD5} *drupal.tar.gz" | md5sum -c -; \ + tar -xz --strip-components=1 -f drupal.tar.gz; \ + rm drupal.tar.gz; \ + chown -R www-data:www-data sites modules themes + +# vim:set ft=dockerfile: diff --git a/7/php8.1/fpm-alpine3.18/Dockerfile b/7/php8.1/fpm-alpine3.18/Dockerfile new file mode 100644 index 000000000..cf35616ec --- /dev/null +++ b/7/php8.1/fpm-alpine3.18/Dockerfile @@ -0,0 +1,67 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.1-fpm-alpine3.18 + +# install the PHP extensions we need +RUN set -eux; \ + \ + apk add --no-cache --virtual .build-deps \ + coreutils \ + freetype-dev \ + libjpeg-turbo-dev \ + libpng-dev \ + libwebp-dev \ + libzip-dev \ +# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642 + postgresql-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr/include \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps; \ + apk del --no-network .build-deps + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 7.98 +ENV DRUPAL_MD5 4139f0feecb44a53645242194809b73a + +RUN set -eux; \ + curl -fSL "https://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz; \ + echo "${DRUPAL_MD5} *drupal.tar.gz" | md5sum -c -; \ + tar -xz --strip-components=1 -f drupal.tar.gz; \ + rm drupal.tar.gz; \ + chown -R www-data:www-data sites modules themes + +# vim:set ft=dockerfile: diff --git a/7/php8.1/fpm-bookworm/Dockerfile b/7/php8.1/fpm-bookworm/Dockerfile new file mode 100644 index 000000000..e6e43b6aa --- /dev/null +++ b/7/php8.1/fpm-bookworm/Dockerfile @@ -0,0 +1,77 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.1-fpm-bookworm + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ + a2enmod rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 7.98 +ENV DRUPAL_MD5 4139f0feecb44a53645242194809b73a + +RUN set -eux; \ + curl -fSL "https://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz; \ + echo "${DRUPAL_MD5} *drupal.tar.gz" | md5sum -c -; \ + tar -xz --strip-components=1 -f drupal.tar.gz; \ + rm drupal.tar.gz; \ + chown -R www-data:www-data sites modules themes + +# vim:set ft=dockerfile: diff --git a/7/php8.1/fpm-bullseye/Dockerfile b/7/php8.1/fpm-bullseye/Dockerfile new file mode 100644 index 000000000..a16c2b3cf --- /dev/null +++ b/7/php8.1/fpm-bullseye/Dockerfile @@ -0,0 +1,77 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.1-fpm-bullseye + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ + a2enmod rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 7.98 +ENV DRUPAL_MD5 4139f0feecb44a53645242194809b73a + +RUN set -eux; \ + curl -fSL "https://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz; \ + echo "${DRUPAL_MD5} *drupal.tar.gz" | md5sum -c -; \ + tar -xz --strip-components=1 -f drupal.tar.gz; \ + rm drupal.tar.gz; \ + chown -R www-data:www-data sites modules themes + +# vim:set ft=dockerfile: diff --git a/7/php8.2/apache-bookworm/Dockerfile b/7/php8.2/apache-bookworm/Dockerfile new file mode 100644 index 000000000..1c28f883c --- /dev/null +++ b/7/php8.2/apache-bookworm/Dockerfile @@ -0,0 +1,77 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.2-apache-bookworm + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ + a2enmod rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 7.98 +ENV DRUPAL_MD5 4139f0feecb44a53645242194809b73a + +RUN set -eux; \ + curl -fSL "https://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz; \ + echo "${DRUPAL_MD5} *drupal.tar.gz" | md5sum -c -; \ + tar -xz --strip-components=1 -f drupal.tar.gz; \ + rm drupal.tar.gz; \ + chown -R www-data:www-data sites modules themes + +# vim:set ft=dockerfile: diff --git a/7/php8.2/apache-bullseye/Dockerfile b/7/php8.2/apache-bullseye/Dockerfile new file mode 100644 index 000000000..eb28d4326 --- /dev/null +++ b/7/php8.2/apache-bullseye/Dockerfile @@ -0,0 +1,77 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.2-apache-bullseye + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ + a2enmod rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 7.98 +ENV DRUPAL_MD5 4139f0feecb44a53645242194809b73a + +RUN set -eux; \ + curl -fSL "https://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz; \ + echo "${DRUPAL_MD5} *drupal.tar.gz" | md5sum -c -; \ + tar -xz --strip-components=1 -f drupal.tar.gz; \ + rm drupal.tar.gz; \ + chown -R www-data:www-data sites modules themes + +# vim:set ft=dockerfile: diff --git a/7/php8.2/fpm-alpine3.17/Dockerfile b/7/php8.2/fpm-alpine3.17/Dockerfile new file mode 100644 index 000000000..e2b7699be --- /dev/null +++ b/7/php8.2/fpm-alpine3.17/Dockerfile @@ -0,0 +1,67 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.2-fpm-alpine3.17 + +# install the PHP extensions we need +RUN set -eux; \ + \ + apk add --no-cache --virtual .build-deps \ + coreutils \ + freetype-dev \ + libjpeg-turbo-dev \ + libpng-dev \ + libwebp-dev \ + libzip-dev \ +# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642 + postgresql-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr/include \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps; \ + apk del --no-network .build-deps + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 7.98 +ENV DRUPAL_MD5 4139f0feecb44a53645242194809b73a + +RUN set -eux; \ + curl -fSL "https://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz; \ + echo "${DRUPAL_MD5} *drupal.tar.gz" | md5sum -c -; \ + tar -xz --strip-components=1 -f drupal.tar.gz; \ + rm drupal.tar.gz; \ + chown -R www-data:www-data sites modules themes + +# vim:set ft=dockerfile: diff --git a/7/php8.2/fpm-alpine3.18/Dockerfile b/7/php8.2/fpm-alpine3.18/Dockerfile new file mode 100644 index 000000000..1412d8010 --- /dev/null +++ b/7/php8.2/fpm-alpine3.18/Dockerfile @@ -0,0 +1,67 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.2-fpm-alpine3.18 + +# install the PHP extensions we need +RUN set -eux; \ + \ + apk add --no-cache --virtual .build-deps \ + coreutils \ + freetype-dev \ + libjpeg-turbo-dev \ + libpng-dev \ + libwebp-dev \ + libzip-dev \ +# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642 + postgresql-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr/include \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps; \ + apk del --no-network .build-deps + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 7.98 +ENV DRUPAL_MD5 4139f0feecb44a53645242194809b73a + +RUN set -eux; \ + curl -fSL "https://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz; \ + echo "${DRUPAL_MD5} *drupal.tar.gz" | md5sum -c -; \ + tar -xz --strip-components=1 -f drupal.tar.gz; \ + rm drupal.tar.gz; \ + chown -R www-data:www-data sites modules themes + +# vim:set ft=dockerfile: diff --git a/7/php8.2/fpm-bookworm/Dockerfile b/7/php8.2/fpm-bookworm/Dockerfile new file mode 100644 index 000000000..1e1423609 --- /dev/null +++ b/7/php8.2/fpm-bookworm/Dockerfile @@ -0,0 +1,77 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.2-fpm-bookworm + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ + a2enmod rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 7.98 +ENV DRUPAL_MD5 4139f0feecb44a53645242194809b73a + +RUN set -eux; \ + curl -fSL "https://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz; \ + echo "${DRUPAL_MD5} *drupal.tar.gz" | md5sum -c -; \ + tar -xz --strip-components=1 -f drupal.tar.gz; \ + rm drupal.tar.gz; \ + chown -R www-data:www-data sites modules themes + +# vim:set ft=dockerfile: diff --git a/7/php8.2/fpm-bullseye/Dockerfile b/7/php8.2/fpm-bullseye/Dockerfile new file mode 100644 index 000000000..0e0d6e8a9 --- /dev/null +++ b/7/php8.2/fpm-bullseye/Dockerfile @@ -0,0 +1,77 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.2-fpm-bullseye + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ + a2enmod rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 7.98 +ENV DRUPAL_MD5 4139f0feecb44a53645242194809b73a + +RUN set -eux; \ + curl -fSL "https://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz; \ + echo "${DRUPAL_MD5} *drupal.tar.gz" | md5sum -c -; \ + tar -xz --strip-components=1 -f drupal.tar.gz; \ + rm drupal.tar.gz; \ + chown -R www-data:www-data sites modules themes + +# vim:set ft=dockerfile: diff --git a/9.4/php8.0/apache-bullseye/Dockerfile b/9.4/php8.0/apache-bullseye/Dockerfile index 94e5a8e6e..72db39cd1 100644 --- a/9.4/php8.0/apache-bullseye/Dockerfile +++ b/9.4/php8.0/apache-bullseye/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/9.4/php8.0/apache-buster/Dockerfile b/9.4/php8.0/apache-buster/Dockerfile index 1626ec220..43e54ebde 100644 --- a/9.4/php8.0/apache-buster/Dockerfile +++ b/9.4/php8.0/apache-buster/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/9.4/php8.0/fpm-bullseye/Dockerfile b/9.4/php8.0/fpm-bullseye/Dockerfile index 3348378f5..02381560e 100644 --- a/9.4/php8.0/fpm-bullseye/Dockerfile +++ b/9.4/php8.0/fpm-bullseye/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/9.4/php8.0/fpm-buster/Dockerfile b/9.4/php8.0/fpm-buster/Dockerfile index ceff00f06..ebcc1ec14 100644 --- a/9.4/php8.0/fpm-buster/Dockerfile +++ b/9.4/php8.0/fpm-buster/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/9.4/php8.1/apache-bookworm/Dockerfile b/9.4/php8.1/apache-bookworm/Dockerfile new file mode 100644 index 000000000..d809ae046 --- /dev/null +++ b/9.4/php8.1/apache-bookworm/Dockerfile @@ -0,0 +1,83 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.1-apache-bookworm + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ + a2enmod rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 9.4.15 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/9.4/php8.1/apache-bullseye/Dockerfile b/9.4/php8.1/apache-bullseye/Dockerfile index afcff2566..fb87b96dd 100644 --- a/9.4/php8.1/apache-bullseye/Dockerfile +++ b/9.4/php8.1/apache-bullseye/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/9.4/php8.1/apache-buster/Dockerfile b/9.4/php8.1/fpm-bookworm/Dockerfile similarity index 93% rename from 9.4/php8.1/apache-buster/Dockerfile rename to 9.4/php8.1/fpm-bookworm/Dockerfile index 6cc799d3e..165e40e1d 100644 --- a/9.4/php8.1/apache-buster/Dockerfile +++ b/9.4/php8.1/fpm-bookworm/Dockerfile @@ -5,7 +5,7 @@ # # from https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.1-apache-buster +FROM php:8.1-fpm-bookworm # install the PHP extensions we need RUN set -eux; \ @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/9.4/php8.1/fpm-bullseye/Dockerfile b/9.4/php8.1/fpm-bullseye/Dockerfile index 1e3d9ed1f..0dc038af0 100644 --- a/9.4/php8.1/fpm-bullseye/Dockerfile +++ b/9.4/php8.1/fpm-bullseye/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/9.4/php8.2/apache-bookworm/Dockerfile b/9.4/php8.2/apache-bookworm/Dockerfile new file mode 100644 index 000000000..91b9f9b3f --- /dev/null +++ b/9.4/php8.2/apache-bookworm/Dockerfile @@ -0,0 +1,83 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.2-apache-bookworm + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ + a2enmod rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 9.4.15 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/9.4/php8.2/apache-bullseye/Dockerfile b/9.4/php8.2/apache-bullseye/Dockerfile new file mode 100644 index 000000000..f1830cf68 --- /dev/null +++ b/9.4/php8.2/apache-bullseye/Dockerfile @@ -0,0 +1,83 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.2-apache-bullseye + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ + a2enmod rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 9.4.15 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/9.4/php8.2/fpm-alpine3.17/Dockerfile b/9.4/php8.2/fpm-alpine3.17/Dockerfile new file mode 100644 index 000000000..63410a1ad --- /dev/null +++ b/9.4/php8.2/fpm-alpine3.17/Dockerfile @@ -0,0 +1,73 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.2-fpm-alpine3.17 + +# install the PHP extensions we need +RUN set -eux; \ + \ + apk add --no-cache --virtual .build-deps \ + coreutils \ + freetype-dev \ + libjpeg-turbo-dev \ + libpng-dev \ + libwebp-dev \ + libzip-dev \ +# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642 + postgresql-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr/include \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps; \ + apk del --no-network .build-deps + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 9.4.15 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/9.4/php8.2/fpm-alpine3.18/Dockerfile b/9.4/php8.2/fpm-alpine3.18/Dockerfile new file mode 100644 index 000000000..d33c2cac1 --- /dev/null +++ b/9.4/php8.2/fpm-alpine3.18/Dockerfile @@ -0,0 +1,73 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.2-fpm-alpine3.18 + +# install the PHP extensions we need +RUN set -eux; \ + \ + apk add --no-cache --virtual .build-deps \ + coreutils \ + freetype-dev \ + libjpeg-turbo-dev \ + libpng-dev \ + libwebp-dev \ + libzip-dev \ +# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642 + postgresql-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr/include \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps; \ + apk del --no-network .build-deps + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 9.4.15 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/9.4/php8.1/fpm-buster/Dockerfile b/9.4/php8.2/fpm-bookworm/Dockerfile similarity index 93% rename from 9.4/php8.1/fpm-buster/Dockerfile rename to 9.4/php8.2/fpm-bookworm/Dockerfile index 5863d4720..4aaf9498a 100644 --- a/9.4/php8.1/fpm-buster/Dockerfile +++ b/9.4/php8.2/fpm-bookworm/Dockerfile @@ -5,7 +5,7 @@ # # from https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.1-fpm-buster +FROM php:8.2-fpm-bookworm # install the PHP extensions we need RUN set -eux; \ @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/9.4/php8.2/fpm-bullseye/Dockerfile b/9.4/php8.2/fpm-bullseye/Dockerfile new file mode 100644 index 000000000..f8bad54a0 --- /dev/null +++ b/9.4/php8.2/fpm-bullseye/Dockerfile @@ -0,0 +1,83 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.2-fpm-bullseye + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ + a2enmod rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 9.4.15 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/9.5/php8.0/apache-bullseye/Dockerfile b/9.5/php8.0/apache-bullseye/Dockerfile index 3c127ec8e..fe9d6b3e4 100644 --- a/9.5/php8.0/apache-bullseye/Dockerfile +++ b/9.5/php8.0/apache-bullseye/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/9.5/php8.0/apache-buster/Dockerfile b/9.5/php8.0/apache-buster/Dockerfile index 0bc949c46..656286c1d 100644 --- a/9.5/php8.0/apache-buster/Dockerfile +++ b/9.5/php8.0/apache-buster/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/9.5/php8.0/fpm-bullseye/Dockerfile b/9.5/php8.0/fpm-bullseye/Dockerfile index fdf619292..7906557f0 100644 --- a/9.5/php8.0/fpm-bullseye/Dockerfile +++ b/9.5/php8.0/fpm-bullseye/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/9.5/php8.0/fpm-buster/Dockerfile b/9.5/php8.0/fpm-buster/Dockerfile index 2921f95e8..8ad08b9bb 100644 --- a/9.5/php8.0/fpm-buster/Dockerfile +++ b/9.5/php8.0/fpm-buster/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/9.5/php8.1/apache-bookworm/Dockerfile b/9.5/php8.1/apache-bookworm/Dockerfile new file mode 100644 index 000000000..13314f45e --- /dev/null +++ b/9.5/php8.1/apache-bookworm/Dockerfile @@ -0,0 +1,83 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.1-apache-bookworm + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ + a2enmod rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 9.5.9 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/9.5/php8.1/apache-bullseye/Dockerfile b/9.5/php8.1/apache-bullseye/Dockerfile index 45b19a328..a48a8fae6 100644 --- a/9.5/php8.1/apache-bullseye/Dockerfile +++ b/9.5/php8.1/apache-bullseye/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/9.5/php8.1/apache-buster/Dockerfile b/9.5/php8.1/fpm-bookworm/Dockerfile similarity index 93% rename from 9.5/php8.1/apache-buster/Dockerfile rename to 9.5/php8.1/fpm-bookworm/Dockerfile index 43873e550..a4e61027c 100644 --- a/9.5/php8.1/apache-buster/Dockerfile +++ b/9.5/php8.1/fpm-bookworm/Dockerfile @@ -5,7 +5,7 @@ # # from https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.1-apache-buster +FROM php:8.1-fpm-bookworm # install the PHP extensions we need RUN set -eux; \ @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/9.5/php8.1/fpm-bullseye/Dockerfile b/9.5/php8.1/fpm-bullseye/Dockerfile index c82cd8f85..1dd33e869 100644 --- a/9.5/php8.1/fpm-bullseye/Dockerfile +++ b/9.5/php8.1/fpm-bullseye/Dockerfile @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/9.5/php8.2/apache-bookworm/Dockerfile b/9.5/php8.2/apache-bookworm/Dockerfile new file mode 100644 index 000000000..22142febd --- /dev/null +++ b/9.5/php8.2/apache-bookworm/Dockerfile @@ -0,0 +1,83 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.2-apache-bookworm + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ + a2enmod rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 9.5.9 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/9.5/php8.2/apache-bullseye/Dockerfile b/9.5/php8.2/apache-bullseye/Dockerfile new file mode 100644 index 000000000..daf204f19 --- /dev/null +++ b/9.5/php8.2/apache-bullseye/Dockerfile @@ -0,0 +1,83 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.2-apache-bullseye + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ + a2enmod rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 9.5.9 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/9.5/php8.2/fpm-alpine3.17/Dockerfile b/9.5/php8.2/fpm-alpine3.17/Dockerfile new file mode 100644 index 000000000..434457b04 --- /dev/null +++ b/9.5/php8.2/fpm-alpine3.17/Dockerfile @@ -0,0 +1,73 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.2-fpm-alpine3.17 + +# install the PHP extensions we need +RUN set -eux; \ + \ + apk add --no-cache --virtual .build-deps \ + coreutils \ + freetype-dev \ + libjpeg-turbo-dev \ + libpng-dev \ + libwebp-dev \ + libzip-dev \ +# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642 + postgresql-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr/include \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps; \ + apk del --no-network .build-deps + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 9.5.9 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/9.5/php8.2/fpm-alpine3.18/Dockerfile b/9.5/php8.2/fpm-alpine3.18/Dockerfile new file mode 100644 index 000000000..fe6d96b85 --- /dev/null +++ b/9.5/php8.2/fpm-alpine3.18/Dockerfile @@ -0,0 +1,73 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.2-fpm-alpine3.18 + +# install the PHP extensions we need +RUN set -eux; \ + \ + apk add --no-cache --virtual .build-deps \ + coreutils \ + freetype-dev \ + libjpeg-turbo-dev \ + libpng-dev \ + libwebp-dev \ + libzip-dev \ +# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642 + postgresql-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr/include \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps; \ + apk del --no-network .build-deps + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 9.5.9 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/9.5/php8.1/fpm-buster/Dockerfile b/9.5/php8.2/fpm-bookworm/Dockerfile similarity index 93% rename from 9.5/php8.1/fpm-buster/Dockerfile rename to 9.5/php8.2/fpm-bookworm/Dockerfile index 0dbd25d44..408366a07 100644 --- a/9.5/php8.1/fpm-buster/Dockerfile +++ b/9.5/php8.2/fpm-bookworm/Dockerfile @@ -5,7 +5,7 @@ # # from https://www.drupal.org/docs/system-requirements/php-requirements -FROM php:8.1-fpm-buster +FROM php:8.2-fpm-bookworm # install the PHP extensions we need RUN set -eux; \ @@ -44,7 +44,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/9.5/php8.2/fpm-bullseye/Dockerfile b/9.5/php8.2/fpm-bullseye/Dockerfile new file mode 100644 index 000000000..56a932ace --- /dev/null +++ b/9.5/php8.2/fpm-bullseye/Dockerfile @@ -0,0 +1,83 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# + +# from https://www.drupal.org/docs/system-requirements/php-requirements +FROM php:8.2-fpm-bullseye + +# install the PHP extensions we need +RUN set -eux; \ + \ + if command -v a2enmod; then \ + a2enmod rewrite; \ + fi; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libfreetype6-dev \ + libjpeg-dev \ + libpng-dev \ + libpq-dev \ + libwebp-dev \ + libzip-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg=/usr \ + --with-webp \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + gd \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + zip \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ + +# https://www.drupal.org/node/3060/release +ENV DRUPAL_VERSION 9.5.9 + +WORKDIR /opt/drupal +RUN set -eux; \ + export COMPOSER_HOME="$(mktemp -d)"; \ + composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \ + chown -R www-data:www-data web/sites web/modules web/themes; \ + rmdir /var/www/html; \ + ln -sf /opt/drupal/web /var/www/html; \ + # delete composer cache + rm -rf "$COMPOSER_HOME" + +ENV PATH=${PATH}:/opt/drupal/vendor/bin + +# vim:set ft=dockerfile: diff --git a/Dockerfile.template b/Dockerfile.template index 4b0c5016d..71c775b38 100644 --- a/Dockerfile.template +++ b/Dockerfile.template @@ -64,7 +64,7 @@ RUN set -eux; \ apt-mark auto '.*' > /dev/null; \ apt-mark manual $savedAptMark; \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ diff --git a/apply-templates.sh b/apply-templates.sh index 96e77c7f8..df74eee0c 100755 --- a/apply-templates.sh +++ b/apply-templates.sh @@ -43,6 +43,12 @@ for version; do for variant in "${variants[@]}"; do export variant + # https://github.com/docker-library/php/blob/86b8b13760c7d7c6120fb635f6a1c84b22f33386/versions.sh#L99-L105 + if [ "$phpVersion" = '8.0' ] && [[ "$variant" = *-'bookworm' ]]; then + continue + elif [ "$phpVersion" != '8.0' ] && [[ "$variant" = *-'buster' ]]; then + continue + fi # https://github.com/docker-library/php/blob/0a68eaa2d3a269079c687e55abc960c77d3a134e/versions.sh#L94-L101 if [[ "$variant" = *-'alpine3.16' ]] && [ "$phpVersion" != '8.0' ]; then continue diff --git a/versions.json b/versions.json index eeb6909f8..3dd5f6999 100644 --- a/versions.json +++ b/versions.json @@ -8,10 +8,10 @@ "8.1" ], "variants": [ + "apache-bookworm", + "fpm-bookworm", "apache-bullseye", "fpm-bullseye", - "apache-buster", - "fpm-buster", "fpm-alpine3.18", "fpm-alpine3.17" ], @@ -20,9 +20,13 @@ "7": { "md5": "4139f0feecb44a53645242194809b73a", "phpVersions": [ + "8.2", + "8.1", "8.0" ], "variants": [ + "apache-bookworm", + "fpm-bookworm", "apache-bullseye", "fpm-bullseye", "apache-buster", @@ -38,10 +42,13 @@ "version": "2" }, "phpVersions": [ + "8.2", "8.1", "8.0" ], "variants": [ + "apache-bookworm", + "fpm-bookworm", "apache-bullseye", "fpm-bullseye", "apache-buster", @@ -57,10 +64,13 @@ "version": "2" }, "phpVersions": [ + "8.2", "8.1", "8.0" ], "variants": [ + "apache-bookworm", + "fpm-bookworm", "apache-bullseye", "fpm-bullseye", "apache-buster", diff --git a/versions.sh b/versions.sh index 3eb01a36f..38ede2ab9 100755 --- a/versions.sh +++ b/versions.sh @@ -88,22 +88,20 @@ for version in "${versions[@]}"; do { version: env.fullVersion, phpVersions: ( - # https://www.drupal.org/docs/system-requirements/php-requirements - # https://www.drupal.org/docs/7/system-requirements/php-requirements - if env.version == "7" then - [ "8.0" ] - elif env.version | startswith("9.") then - [ "8.1", "8.0" ] - else - # https://www.drupal.org/node/3264830 - # Require PHP 8.1 for Drupal 10 - [ "8.2", "8.1" ] - end + [ + "8.2", + "8.1", + # https://www.drupal.org/docs/system-requirements/php-requirements + # https://www.drupal.org/docs/7/system-requirements/php-requirements + if env.version == "7" or (env.version | startswith("9.")) then "8.0" else empty end, + empty + ] ), } + $doc | .variants = [ + "bookworm", "bullseye", - "buster", + if .phpVersions | index("8.0") then "buster" else empty end, # https://github.com/docker-library/php/blob/86b8b13760c7d7c6120fb635f6a1c84b22f33386/versions.sh#L99-L105 "alpine3.18", "alpine3.17", if .phpVersions | index("8.0") then "alpine3.16" else empty end, # https://github.com/docker-library/php/blob/0a68eaa2d3a269079c687e55abc960c77d3a134e/versions.sh#L94-L101