diff --git a/8.1/alpine3.21/cli/Dockerfile b/8.1/alpine3.21/cli/Dockerfile
deleted file mode 100644
index 44fbb3570..000000000
--- a/8.1/alpine3.21/cli/Dockerfile
+++ /dev/null
@@ -1,225 +0,0 @@
-#
-# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
-#
-# PLEASE DO NOT EDIT IT DIRECTLY.
-#
-
-FROM alpine:3.21
-
-# dependencies required for running "phpize"
-# these get automatically installed and removed by "docker-php-ext-*" (unless they're already installed)
-ENV PHPIZE_DEPS \
- autoconf \
- dpkg-dev dpkg \
- file \
- g++ \
- gcc \
- libc-dev \
- make \
- pkgconf \
- re2c
-
-# persistent / runtime deps
-RUN apk add --no-cache \
- ca-certificates \
- curl \
- openssl \
- tar \
- xz
-
-# ensure www-data user exists
-RUN set -eux; \
- adduser -u 82 -D -S -G www-data www-data
-# 82 is the standard uid/gid for "www-data" in Alpine
-# https://git.alpinelinux.org/aports/tree/main/apache2/apache2.pre-install?h=3.14-stable
-# https://git.alpinelinux.org/aports/tree/main/lighttpd/lighttpd.pre-install?h=3.14-stable
-# https://git.alpinelinux.org/aports/tree/main/nginx/nginx.pre-install?h=3.14-stable
-
-ENV PHP_INI_DIR /usr/local/etc/php
-RUN set -eux; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
-# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743)
- [ ! -d /var/www/html ]; \
- mkdir -p /var/www/html; \
- chown www-data:www-data /var/www/html; \
- chmod 1777 /var/www/html
-
-# Apply stack smash protection to functions using local buffers and alloca()
-# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64)
-# Enable optimization (-O2)
-# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default)
-# https://github.com/docker-library/php/issues/272
-# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php)
-ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-ENV PHP_CPPFLAGS="$PHP_CFLAGS"
-ENV PHP_LDFLAGS="-Wl,-O1 -pie"
-
-ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD
-
-ENV PHP_VERSION 8.1.33
-ENV PHP_URL="https://www.php.net/distributions/php-8.1.33.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.1.33.tar.xz.asc"
-ENV PHP_SHA256="9db83bf4590375562bc1a10b353cccbcf9fcfc56c58b7c8fb814e6865bb928d1"
-
-RUN set -eux; \
- \
- apk add --no-cache --virtual .fetch-deps gnupg; \
- \
- mkdir -p /usr/src; \
- cd /usr/src; \
- \
- curl -fsSL -o php.tar.xz "$PHP_URL"; \
- \
- if [ -n "$PHP_SHA256" ]; then \
- echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \
- fi; \
- \
- curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \
- export GNUPGHOME="$(mktemp -d)"; \
- for key in $GPG_KEYS; do \
- gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
- done; \
- gpg --batch --verify php.tar.xz.asc php.tar.xz; \
- gpgconf --kill all; \
- rm -rf "$GNUPGHOME"; \
- \
- apk del --no-network .fetch-deps
-
-COPY docker-php-source /usr/local/bin/
-
-RUN set -eux; \
- apk add --no-cache --virtual .build-deps \
- $PHPIZE_DEPS \
- argon2-dev \
- coreutils \
- curl-dev \
- gnu-libiconv-dev \
- libsodium-dev \
- libxml2-dev \
- linux-headers \
- oniguruma-dev \
- openssl-dev \
- patch \
- patchutils \
- readline-dev \
- sqlite-dev \
- ; \
- \
-# make sure musl's iconv doesn't get used (https://www.php.net/manual/en/intro.iconv.php)
- rm -vf /usr/include/iconv.h; \
- \
- export \
- CFLAGS="$PHP_CFLAGS" \
- CPPFLAGS="$PHP_CPPFLAGS" \
- LDFLAGS="$PHP_LDFLAGS" \
-# https://github.com/php/php-src/blob/d6299206dd828382753453befd1b915491b741c6/configure.ac#L1496-L1511
- PHP_BUILD_PROVIDER='https://github.com/docker-library/php' \
- PHP_UNAME='Linux - Docker' \
- ; \
- docker-php-source extract; \
- cd /usr/src/php; \
-# Apply patches; see https://github.com/docker-library/php/pull/1552
- # https://github.com/php/php-src/issues/11678
- curl -fL 'https://github.com/php/php-src/commit/577b8ae4226368e66fee7a9b5c58f9e2428372fc.patch?full_index=1' -o 11678.patch; \
- echo '6edc20c3bb3e7cc13515abce7f2fffa8ebea6cf7469abfbc78fcdc120350b239 *11678.patch' | sha256sum -c -; \
- patch -p1 < 11678.patch; \
- rm 11678.patch; \
- # https://github.com/php/php-src/issues/14834
- curl -fL 'https://github.com/php/php-src/commit/67259e451d5d58b4842776c5696a66d74e157609.patch?full_index=1' -o 14834.patch; \
- echo 'ed10a1b254091ad676ed204e55628ecbd6c8962004d6185a1821cedecd526c0f *14834.patch' | sha256sum -c -; \
- filterdiff -x '*/NEWS' 14834.patch | patch -p1; \
- rm 14834.patch; \
- gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
- test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; \
- ./configure \
- --build="$gnuArch" \
- --sysconfdir="${PHP_INI_DIR%/php}" \
- --with-config-file-path="$PHP_INI_DIR" \
- --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \
- \
-# make sure invalid --configure-flags are fatal errors instead of just warnings
- --enable-option-checking=fatal \
- \
-# https://github.com/docker-library/php/issues/439
- --with-mhash \
- \
-# https://github.com/docker-library/php/issues/822
- --with-pic \
- \
-# --enable-ftp is included here for compatibility with existing versions. ftp_ssl_connect() needed ftp to be compiled statically before PHP 7.0 (see https://github.com/docker-library/php/issues/236).
- --enable-ftp \
-# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
- --enable-mbstring \
-# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
- --enable-mysqlnd \
-# https://wiki.php.net/rfc/argon2_password_hash
- --with-password-argon2 \
-# https://wiki.php.net/rfc/libsodium
- --with-sodium=shared \
-# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109)
- --with-pdo-sqlite=/usr \
- --with-sqlite3=/usr \
- \
- --with-curl \
- --with-iconv=/usr \
- --with-openssl \
- --with-readline \
- --with-zlib \
- \
-# https://github.com/docker-library/php/pull/1259
- --enable-phpdbg \
- --enable-phpdbg-readline \
- \
-# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
- --with-pear \
- \
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
- $(test "$gnuArch" = 'riscv64-linux-musl' && echo '--without-pcre-jit') \
- ; \
- make -j "$(nproc)"; \
- find -type f -name '*.a' -delete; \
- make install; \
- find \
- /usr/local \
- -type f \
- -perm '/0111' \
- -exec sh -euxc ' \
- strip --strip-all "$@" || : \
- ' -- '{}' + \
- ; \
- make clean; \
- \
-# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable)
- cp -v php.ini-* "$PHP_INI_DIR/"; \
- \
- cd /; \
- docker-php-source delete; \
- \
- 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-cache $runDeps; \
- \
- apk del --no-network .build-deps; \
- \
-# update pecl channel definitions https://github.com/docker-library/php/issues/443
- pecl update-channels; \
- rm -rf /tmp/pear ~/.pearrc; \
- \
-# smoke test
- php --version
-
-COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
-
-# enable OPcache by default (https://wiki.php.net/rfc/make_opcache_required)
-RUN docker-php-ext-enable opcache
-
-# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598)
-RUN docker-php-ext-enable sodium
-
-ENTRYPOINT ["docker-php-entrypoint"]
-CMD ["php", "-a"]
diff --git a/8.1/alpine3.21/fpm/Dockerfile b/8.1/alpine3.21/fpm/Dockerfile
deleted file mode 100644
index 6708f4a06..000000000
--- a/8.1/alpine3.21/fpm/Dockerfile
+++ /dev/null
@@ -1,272 +0,0 @@
-#
-# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
-#
-# PLEASE DO NOT EDIT IT DIRECTLY.
-#
-
-FROM alpine:3.21
-
-# dependencies required for running "phpize"
-# these get automatically installed and removed by "docker-php-ext-*" (unless they're already installed)
-ENV PHPIZE_DEPS \
- autoconf \
- dpkg-dev dpkg \
- file \
- g++ \
- gcc \
- libc-dev \
- make \
- pkgconf \
- re2c
-
-# persistent / runtime deps
-RUN apk add --no-cache \
- ca-certificates \
- curl \
- openssl \
- tar \
- xz
-
-# ensure www-data user exists
-RUN set -eux; \
- adduser -u 82 -D -S -G www-data www-data
-# 82 is the standard uid/gid for "www-data" in Alpine
-# https://git.alpinelinux.org/aports/tree/main/apache2/apache2.pre-install?h=3.14-stable
-# https://git.alpinelinux.org/aports/tree/main/lighttpd/lighttpd.pre-install?h=3.14-stable
-# https://git.alpinelinux.org/aports/tree/main/nginx/nginx.pre-install?h=3.14-stable
-
-ENV PHP_INI_DIR /usr/local/etc/php
-RUN set -eux; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
-# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743)
- [ ! -d /var/www/html ]; \
- mkdir -p /var/www/html; \
- chown www-data:www-data /var/www/html; \
- chmod 1777 /var/www/html
-
-# Apply stack smash protection to functions using local buffers and alloca()
-# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64)
-# Enable optimization (-O2)
-# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default)
-# https://github.com/docker-library/php/issues/272
-# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php)
-ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-ENV PHP_CPPFLAGS="$PHP_CFLAGS"
-ENV PHP_LDFLAGS="-Wl,-O1 -pie"
-
-ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD
-
-ENV PHP_VERSION 8.1.33
-ENV PHP_URL="https://www.php.net/distributions/php-8.1.33.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.1.33.tar.xz.asc"
-ENV PHP_SHA256="9db83bf4590375562bc1a10b353cccbcf9fcfc56c58b7c8fb814e6865bb928d1"
-
-RUN set -eux; \
- \
- apk add --no-cache --virtual .fetch-deps gnupg; \
- \
- mkdir -p /usr/src; \
- cd /usr/src; \
- \
- curl -fsSL -o php.tar.xz "$PHP_URL"; \
- \
- if [ -n "$PHP_SHA256" ]; then \
- echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \
- fi; \
- \
- curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \
- export GNUPGHOME="$(mktemp -d)"; \
- for key in $GPG_KEYS; do \
- gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
- done; \
- gpg --batch --verify php.tar.xz.asc php.tar.xz; \
- gpgconf --kill all; \
- rm -rf "$GNUPGHOME"; \
- \
- apk del --no-network .fetch-deps
-
-COPY docker-php-source /usr/local/bin/
-
-RUN set -eux; \
- apk add --no-cache --virtual .build-deps \
- $PHPIZE_DEPS \
- argon2-dev \
- coreutils \
- curl-dev \
- gnu-libiconv-dev \
- libsodium-dev \
- libxml2-dev \
- linux-headers \
- oniguruma-dev \
- openssl-dev \
- patch \
- patchutils \
- readline-dev \
- sqlite-dev \
- ; \
- \
-# make sure musl's iconv doesn't get used (https://www.php.net/manual/en/intro.iconv.php)
- rm -vf /usr/include/iconv.h; \
- \
- export \
- CFLAGS="$PHP_CFLAGS" \
- CPPFLAGS="$PHP_CPPFLAGS" \
- LDFLAGS="$PHP_LDFLAGS" \
-# https://github.com/php/php-src/blob/d6299206dd828382753453befd1b915491b741c6/configure.ac#L1496-L1511
- PHP_BUILD_PROVIDER='https://github.com/docker-library/php' \
- PHP_UNAME='Linux - Docker' \
- ; \
- docker-php-source extract; \
- cd /usr/src/php; \
-# Apply patches; see https://github.com/docker-library/php/pull/1552
- # https://github.com/php/php-src/issues/11678
- curl -fL 'https://github.com/php/php-src/commit/577b8ae4226368e66fee7a9b5c58f9e2428372fc.patch?full_index=1' -o 11678.patch; \
- echo '6edc20c3bb3e7cc13515abce7f2fffa8ebea6cf7469abfbc78fcdc120350b239 *11678.patch' | sha256sum -c -; \
- patch -p1 < 11678.patch; \
- rm 11678.patch; \
- # https://github.com/php/php-src/issues/14834
- curl -fL 'https://github.com/php/php-src/commit/67259e451d5d58b4842776c5696a66d74e157609.patch?full_index=1' -o 14834.patch; \
- echo 'ed10a1b254091ad676ed204e55628ecbd6c8962004d6185a1821cedecd526c0f *14834.patch' | sha256sum -c -; \
- filterdiff -x '*/NEWS' 14834.patch | patch -p1; \
- rm 14834.patch; \
- gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
- test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; \
- ./configure \
- --build="$gnuArch" \
- --sysconfdir="${PHP_INI_DIR%/php}" \
- --with-config-file-path="$PHP_INI_DIR" \
- --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \
- \
-# make sure invalid --configure-flags are fatal errors instead of just warnings
- --enable-option-checking=fatal \
- \
-# https://github.com/docker-library/php/issues/439
- --with-mhash \
- \
-# https://github.com/docker-library/php/issues/822
- --with-pic \
- \
-# --enable-ftp is included here for compatibility with existing versions. ftp_ssl_connect() needed ftp to be compiled statically before PHP 7.0 (see https://github.com/docker-library/php/issues/236).
- --enable-ftp \
-# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
- --enable-mbstring \
-# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
- --enable-mysqlnd \
-# https://wiki.php.net/rfc/argon2_password_hash
- --with-password-argon2 \
-# https://wiki.php.net/rfc/libsodium
- --with-sodium=shared \
-# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109)
- --with-pdo-sqlite=/usr \
- --with-sqlite3=/usr \
- \
- --with-curl \
- --with-iconv=/usr \
- --with-openssl \
- --with-readline \
- --with-zlib \
- \
-# https://github.com/bwoebi/phpdbg-docs/issues/1#issuecomment-163872806 ("phpdbg is primarily a CLI debugger, and is not suitable for debugging an fpm stack.")
- --disable-phpdbg \
- \
-# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
- --with-pear \
- \
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
- $(test "$gnuArch" = 'riscv64-linux-musl' && echo '--without-pcre-jit') \
- \
- --disable-cgi \
- \
- --enable-fpm \
- --with-fpm-user=www-data \
- --with-fpm-group=www-data \
- ; \
- make -j "$(nproc)"; \
- find -type f -name '*.a' -delete; \
- make install; \
- find \
- /usr/local \
- -type f \
- -perm '/0111' \
- -exec sh -euxc ' \
- strip --strip-all "$@" || : \
- ' -- '{}' + \
- ; \
- make clean; \
- \
-# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable)
- cp -v php.ini-* "$PHP_INI_DIR/"; \
- \
- cd /; \
- docker-php-source delete; \
- \
- 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-cache $runDeps; \
- \
- apk del --no-network .build-deps; \
- \
-# update pecl channel definitions https://github.com/docker-library/php/issues/443
- pecl update-channels; \
- rm -rf /tmp/pear ~/.pearrc; \
- \
-# smoke test
- php --version
-
-COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
-
-# enable OPcache by default (https://wiki.php.net/rfc/make_opcache_required)
-RUN docker-php-ext-enable opcache
-
-# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598)
-RUN docker-php-ext-enable sodium
-
-ENTRYPOINT ["docker-php-entrypoint"]
-WORKDIR /var/www/html
-
-RUN set -eux; \
- cd "${PHP_INI_DIR%/php}"; \
- \
- cp -v php-fpm.conf.default php-fpm.conf; \
- cp -v php-fpm.d/www.conf.default php-fpm.d/www.conf; \
- \
- { \
- echo '[global]'; \
- echo 'error_log = /proc/self/fd/2'; \
- echo; echo '; https://github.com/docker-library/php/pull/725#issuecomment-443540114'; echo 'log_limit = 8192'; \
- echo; \
- echo '[www]'; \
- echo '; php-fpm closes STDOUT on startup, so sending logs to /proc/self/fd/1 does not work.'; \
- echo '; https://bugs.php.net/bug.php?id=73886'; \
- echo 'access.log = /proc/self/fd/2'; \
- echo; \
- echo 'clear_env = no'; \
- echo; \
- echo '; Ensure worker stdout and stderr are sent to the main error log.'; \
- echo 'catch_workers_output = yes'; \
- echo 'decorate_workers_output = no'; \
- } | tee php-fpm.d/docker.conf; \
- { \
- echo '[global]'; \
- echo 'daemonize = no'; \
- echo; \
- echo '[www]'; \
- echo 'listen = 9000'; \
- } | tee php-fpm.d/zz-docker.conf; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
- { \
- echo '; https://github.com/docker-library/php/issues/878#issuecomment-938595965'; \
- echo 'fastcgi.logging = Off'; \
- } > "$PHP_INI_DIR/conf.d/docker-fpm.ini"
-
-# Override stop signal to stop process gracefully
-# https://github.com/php/php-src/blob/17baa87faddc2550def3ae7314236826bc1b1398/sapi/fpm/php-fpm.8.in#L163
-STOPSIGNAL SIGQUIT
-
-EXPOSE 9000
-CMD ["php-fpm"]
diff --git a/8.1/alpine3.21/zts/Dockerfile b/8.1/alpine3.21/zts/Dockerfile
deleted file mode 100644
index 1efb7e258..000000000
--- a/8.1/alpine3.21/zts/Dockerfile
+++ /dev/null
@@ -1,233 +0,0 @@
-#
-# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
-#
-# PLEASE DO NOT EDIT IT DIRECTLY.
-#
-
-FROM alpine:3.21
-
-# dependencies required for running "phpize"
-# these get automatically installed and removed by "docker-php-ext-*" (unless they're already installed)
-ENV PHPIZE_DEPS \
- autoconf \
- dpkg-dev dpkg \
- file \
- g++ \
- gcc \
- libc-dev \
- make \
- pkgconf \
- re2c
-
-# persistent / runtime deps
-RUN apk add --no-cache \
- ca-certificates \
- curl \
- openssl \
- tar \
- xz
-
-# ensure www-data user exists
-RUN set -eux; \
- adduser -u 82 -D -S -G www-data www-data
-# 82 is the standard uid/gid for "www-data" in Alpine
-# https://git.alpinelinux.org/aports/tree/main/apache2/apache2.pre-install?h=3.14-stable
-# https://git.alpinelinux.org/aports/tree/main/lighttpd/lighttpd.pre-install?h=3.14-stable
-# https://git.alpinelinux.org/aports/tree/main/nginx/nginx.pre-install?h=3.14-stable
-
-ENV PHP_INI_DIR /usr/local/etc/php
-RUN set -eux; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
-# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743)
- [ ! -d /var/www/html ]; \
- mkdir -p /var/www/html; \
- chown www-data:www-data /var/www/html; \
- chmod 1777 /var/www/html
-
-# Apply stack smash protection to functions using local buffers and alloca()
-# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64)
-# Enable optimization (-O2)
-# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default)
-# https://github.com/docker-library/php/issues/272
-# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php)
-ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-ENV PHP_CPPFLAGS="$PHP_CFLAGS"
-ENV PHP_LDFLAGS="-Wl,-O1 -pie"
-
-ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD
-
-ENV PHP_VERSION 8.1.33
-ENV PHP_URL="https://www.php.net/distributions/php-8.1.33.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.1.33.tar.xz.asc"
-ENV PHP_SHA256="9db83bf4590375562bc1a10b353cccbcf9fcfc56c58b7c8fb814e6865bb928d1"
-
-RUN set -eux; \
- \
- apk add --no-cache --virtual .fetch-deps gnupg; \
- \
- mkdir -p /usr/src; \
- cd /usr/src; \
- \
- curl -fsSL -o php.tar.xz "$PHP_URL"; \
- \
- if [ -n "$PHP_SHA256" ]; then \
- echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \
- fi; \
- \
- curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \
- export GNUPGHOME="$(mktemp -d)"; \
- for key in $GPG_KEYS; do \
- gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
- done; \
- gpg --batch --verify php.tar.xz.asc php.tar.xz; \
- gpgconf --kill all; \
- rm -rf "$GNUPGHOME"; \
- \
- apk del --no-network .fetch-deps
-
-COPY docker-php-source /usr/local/bin/
-
-RUN set -eux; \
- apk add --no-cache --virtual .build-deps \
- $PHPIZE_DEPS \
- argon2-dev \
- coreutils \
- curl-dev \
- gnu-libiconv-dev \
- libsodium-dev \
- libxml2-dev \
- linux-headers \
- oniguruma-dev \
- openssl-dev \
- patch \
- patchutils \
- readline-dev \
- sqlite-dev \
- ; \
- \
-# make sure musl's iconv doesn't get used (https://www.php.net/manual/en/intro.iconv.php)
- rm -vf /usr/include/iconv.h; \
- \
- export \
- CFLAGS="$PHP_CFLAGS" \
- CPPFLAGS="$PHP_CPPFLAGS" \
- LDFLAGS="$PHP_LDFLAGS" \
-# https://github.com/php/php-src/blob/d6299206dd828382753453befd1b915491b741c6/configure.ac#L1496-L1511
- PHP_BUILD_PROVIDER='https://github.com/docker-library/php' \
- PHP_UNAME='Linux - Docker' \
- ; \
- docker-php-source extract; \
- cd /usr/src/php; \
-# Apply patches; see https://github.com/docker-library/php/pull/1552
- # https://github.com/php/php-src/issues/11678
- curl -fL 'https://github.com/php/php-src/commit/577b8ae4226368e66fee7a9b5c58f9e2428372fc.patch?full_index=1' -o 11678.patch; \
- echo '6edc20c3bb3e7cc13515abce7f2fffa8ebea6cf7469abfbc78fcdc120350b239 *11678.patch' | sha256sum -c -; \
- patch -p1 < 11678.patch; \
- rm 11678.patch; \
- # https://github.com/php/php-src/issues/14834
- curl -fL 'https://github.com/php/php-src/commit/67259e451d5d58b4842776c5696a66d74e157609.patch?full_index=1' -o 14834.patch; \
- echo 'ed10a1b254091ad676ed204e55628ecbd6c8962004d6185a1821cedecd526c0f *14834.patch' | sha256sum -c -; \
- filterdiff -x '*/NEWS' 14834.patch | patch -p1; \
- rm 14834.patch; \
- gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
- test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; \
- ./configure \
- --build="$gnuArch" \
- --sysconfdir="${PHP_INI_DIR%/php}" \
- --with-config-file-path="$PHP_INI_DIR" \
- --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \
- \
-# make sure invalid --configure-flags are fatal errors instead of just warnings
- --enable-option-checking=fatal \
- \
-# https://github.com/docker-library/php/issues/439
- --with-mhash \
- \
-# https://github.com/docker-library/php/issues/822
- --with-pic \
- \
-# --enable-ftp is included here for compatibility with existing versions. ftp_ssl_connect() needed ftp to be compiled statically before PHP 7.0 (see https://github.com/docker-library/php/issues/236).
- --enable-ftp \
-# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
- --enable-mbstring \
-# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
- --enable-mysqlnd \
-# https://wiki.php.net/rfc/argon2_password_hash
- --with-password-argon2 \
-# https://wiki.php.net/rfc/libsodium
- --with-sodium=shared \
-# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109)
- --with-pdo-sqlite=/usr \
- --with-sqlite3=/usr \
- \
- --with-curl \
- --with-iconv=/usr \
- --with-openssl \
- --with-readline \
- --with-zlib \
- \
-# https://github.com/docker-library/php/pull/1259
- --enable-phpdbg \
- --enable-phpdbg-readline \
- \
-# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
- --with-pear \
- \
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
- $(test "$gnuArch" = 'riscv64-linux-musl' && echo '--without-pcre-jit') \
- \
-# https://github.com/docker-library/php/pull/939#issuecomment-730501748
- --enable-embed \
- \
- --enable-zts \
-# https://externals.io/message/118859
- --disable-zend-signals \
- --enable-zend-max-execution-timers \
- ; \
- make -j "$(nproc)"; \
- find -type f -name '*.a' -delete; \
- make install; \
- find \
- /usr/local \
- -type f \
- -perm '/0111' \
- -exec sh -euxc ' \
- strip --strip-all "$@" || : \
- ' -- '{}' + \
- ; \
- make clean; \
- \
-# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable)
- cp -v php.ini-* "$PHP_INI_DIR/"; \
- \
- cd /; \
- docker-php-source delete; \
- \
- 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-cache $runDeps; \
- \
- apk del --no-network .build-deps; \
- \
-# update pecl channel definitions https://github.com/docker-library/php/issues/443
- pecl update-channels; \
- rm -rf /tmp/pear ~/.pearrc; \
- \
-# smoke test
- php --version
-
-COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
-
-# enable OPcache by default (https://wiki.php.net/rfc/make_opcache_required)
-RUN docker-php-ext-enable opcache
-
-# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598)
-RUN docker-php-ext-enable sodium
-
-ENTRYPOINT ["docker-php-entrypoint"]
-CMD ["php", "-a"]
diff --git a/8.1/alpine3.22/cli/Dockerfile b/8.1/alpine3.22/cli/Dockerfile
deleted file mode 100644
index 90262daf9..000000000
--- a/8.1/alpine3.22/cli/Dockerfile
+++ /dev/null
@@ -1,225 +0,0 @@
-#
-# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
-#
-# PLEASE DO NOT EDIT IT DIRECTLY.
-#
-
-FROM alpine:3.22
-
-# dependencies required for running "phpize"
-# these get automatically installed and removed by "docker-php-ext-*" (unless they're already installed)
-ENV PHPIZE_DEPS \
- autoconf \
- dpkg-dev dpkg \
- file \
- g++ \
- gcc \
- libc-dev \
- make \
- pkgconf \
- re2c
-
-# persistent / runtime deps
-RUN apk add --no-cache \
- ca-certificates \
- curl \
- openssl \
- tar \
- xz
-
-# ensure www-data user exists
-RUN set -eux; \
- adduser -u 82 -D -S -G www-data www-data
-# 82 is the standard uid/gid for "www-data" in Alpine
-# https://git.alpinelinux.org/aports/tree/main/apache2/apache2.pre-install?h=3.14-stable
-# https://git.alpinelinux.org/aports/tree/main/lighttpd/lighttpd.pre-install?h=3.14-stable
-# https://git.alpinelinux.org/aports/tree/main/nginx/nginx.pre-install?h=3.14-stable
-
-ENV PHP_INI_DIR /usr/local/etc/php
-RUN set -eux; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
-# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743)
- [ ! -d /var/www/html ]; \
- mkdir -p /var/www/html; \
- chown www-data:www-data /var/www/html; \
- chmod 1777 /var/www/html
-
-# Apply stack smash protection to functions using local buffers and alloca()
-# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64)
-# Enable optimization (-O2)
-# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default)
-# https://github.com/docker-library/php/issues/272
-# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php)
-ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-ENV PHP_CPPFLAGS="$PHP_CFLAGS"
-ENV PHP_LDFLAGS="-Wl,-O1 -pie"
-
-ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD
-
-ENV PHP_VERSION 8.1.33
-ENV PHP_URL="https://www.php.net/distributions/php-8.1.33.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.1.33.tar.xz.asc"
-ENV PHP_SHA256="9db83bf4590375562bc1a10b353cccbcf9fcfc56c58b7c8fb814e6865bb928d1"
-
-RUN set -eux; \
- \
- apk add --no-cache --virtual .fetch-deps gnupg; \
- \
- mkdir -p /usr/src; \
- cd /usr/src; \
- \
- curl -fsSL -o php.tar.xz "$PHP_URL"; \
- \
- if [ -n "$PHP_SHA256" ]; then \
- echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \
- fi; \
- \
- curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \
- export GNUPGHOME="$(mktemp -d)"; \
- for key in $GPG_KEYS; do \
- gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
- done; \
- gpg --batch --verify php.tar.xz.asc php.tar.xz; \
- gpgconf --kill all; \
- rm -rf "$GNUPGHOME"; \
- \
- apk del --no-network .fetch-deps
-
-COPY docker-php-source /usr/local/bin/
-
-RUN set -eux; \
- apk add --no-cache --virtual .build-deps \
- $PHPIZE_DEPS \
- argon2-dev \
- coreutils \
- curl-dev \
- gnu-libiconv-dev \
- libsodium-dev \
- libxml2-dev \
- linux-headers \
- oniguruma-dev \
- openssl-dev \
- patch \
- patchutils \
- readline-dev \
- sqlite-dev \
- ; \
- \
-# make sure musl's iconv doesn't get used (https://www.php.net/manual/en/intro.iconv.php)
- rm -vf /usr/include/iconv.h; \
- \
- export \
- CFLAGS="$PHP_CFLAGS" \
- CPPFLAGS="$PHP_CPPFLAGS" \
- LDFLAGS="$PHP_LDFLAGS" \
-# https://github.com/php/php-src/blob/d6299206dd828382753453befd1b915491b741c6/configure.ac#L1496-L1511
- PHP_BUILD_PROVIDER='https://github.com/docker-library/php' \
- PHP_UNAME='Linux - Docker' \
- ; \
- docker-php-source extract; \
- cd /usr/src/php; \
-# Apply patches; see https://github.com/docker-library/php/pull/1552
- # https://github.com/php/php-src/issues/11678
- curl -fL 'https://github.com/php/php-src/commit/577b8ae4226368e66fee7a9b5c58f9e2428372fc.patch?full_index=1' -o 11678.patch; \
- echo '6edc20c3bb3e7cc13515abce7f2fffa8ebea6cf7469abfbc78fcdc120350b239 *11678.patch' | sha256sum -c -; \
- patch -p1 < 11678.patch; \
- rm 11678.patch; \
- # https://github.com/php/php-src/issues/14834
- curl -fL 'https://github.com/php/php-src/commit/67259e451d5d58b4842776c5696a66d74e157609.patch?full_index=1' -o 14834.patch; \
- echo 'ed10a1b254091ad676ed204e55628ecbd6c8962004d6185a1821cedecd526c0f *14834.patch' | sha256sum -c -; \
- filterdiff -x '*/NEWS' 14834.patch | patch -p1; \
- rm 14834.patch; \
- gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
- test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; \
- ./configure \
- --build="$gnuArch" \
- --sysconfdir="${PHP_INI_DIR%/php}" \
- --with-config-file-path="$PHP_INI_DIR" \
- --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \
- \
-# make sure invalid --configure-flags are fatal errors instead of just warnings
- --enable-option-checking=fatal \
- \
-# https://github.com/docker-library/php/issues/439
- --with-mhash \
- \
-# https://github.com/docker-library/php/issues/822
- --with-pic \
- \
-# --enable-ftp is included here for compatibility with existing versions. ftp_ssl_connect() needed ftp to be compiled statically before PHP 7.0 (see https://github.com/docker-library/php/issues/236).
- --enable-ftp \
-# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
- --enable-mbstring \
-# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
- --enable-mysqlnd \
-# https://wiki.php.net/rfc/argon2_password_hash
- --with-password-argon2 \
-# https://wiki.php.net/rfc/libsodium
- --with-sodium=shared \
-# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109)
- --with-pdo-sqlite=/usr \
- --with-sqlite3=/usr \
- \
- --with-curl \
- --with-iconv=/usr \
- --with-openssl \
- --with-readline \
- --with-zlib \
- \
-# https://github.com/docker-library/php/pull/1259
- --enable-phpdbg \
- --enable-phpdbg-readline \
- \
-# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
- --with-pear \
- \
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
- $(test "$gnuArch" = 'riscv64-linux-musl' && echo '--without-pcre-jit') \
- ; \
- make -j "$(nproc)"; \
- find -type f -name '*.a' -delete; \
- make install; \
- find \
- /usr/local \
- -type f \
- -perm '/0111' \
- -exec sh -euxc ' \
- strip --strip-all "$@" || : \
- ' -- '{}' + \
- ; \
- make clean; \
- \
-# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable)
- cp -v php.ini-* "$PHP_INI_DIR/"; \
- \
- cd /; \
- docker-php-source delete; \
- \
- 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-cache $runDeps; \
- \
- apk del --no-network .build-deps; \
- \
-# update pecl channel definitions https://github.com/docker-library/php/issues/443
- pecl update-channels; \
- rm -rf /tmp/pear ~/.pearrc; \
- \
-# smoke test
- php --version
-
-COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
-
-# enable OPcache by default (https://wiki.php.net/rfc/make_opcache_required)
-RUN docker-php-ext-enable opcache
-
-# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598)
-RUN docker-php-ext-enable sodium
-
-ENTRYPOINT ["docker-php-entrypoint"]
-CMD ["php", "-a"]
diff --git a/8.1/alpine3.22/fpm/Dockerfile b/8.1/alpine3.22/fpm/Dockerfile
deleted file mode 100644
index 9cb4e5c21..000000000
--- a/8.1/alpine3.22/fpm/Dockerfile
+++ /dev/null
@@ -1,272 +0,0 @@
-#
-# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
-#
-# PLEASE DO NOT EDIT IT DIRECTLY.
-#
-
-FROM alpine:3.22
-
-# dependencies required for running "phpize"
-# these get automatically installed and removed by "docker-php-ext-*" (unless they're already installed)
-ENV PHPIZE_DEPS \
- autoconf \
- dpkg-dev dpkg \
- file \
- g++ \
- gcc \
- libc-dev \
- make \
- pkgconf \
- re2c
-
-# persistent / runtime deps
-RUN apk add --no-cache \
- ca-certificates \
- curl \
- openssl \
- tar \
- xz
-
-# ensure www-data user exists
-RUN set -eux; \
- adduser -u 82 -D -S -G www-data www-data
-# 82 is the standard uid/gid for "www-data" in Alpine
-# https://git.alpinelinux.org/aports/tree/main/apache2/apache2.pre-install?h=3.14-stable
-# https://git.alpinelinux.org/aports/tree/main/lighttpd/lighttpd.pre-install?h=3.14-stable
-# https://git.alpinelinux.org/aports/tree/main/nginx/nginx.pre-install?h=3.14-stable
-
-ENV PHP_INI_DIR /usr/local/etc/php
-RUN set -eux; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
-# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743)
- [ ! -d /var/www/html ]; \
- mkdir -p /var/www/html; \
- chown www-data:www-data /var/www/html; \
- chmod 1777 /var/www/html
-
-# Apply stack smash protection to functions using local buffers and alloca()
-# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64)
-# Enable optimization (-O2)
-# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default)
-# https://github.com/docker-library/php/issues/272
-# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php)
-ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-ENV PHP_CPPFLAGS="$PHP_CFLAGS"
-ENV PHP_LDFLAGS="-Wl,-O1 -pie"
-
-ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD
-
-ENV PHP_VERSION 8.1.33
-ENV PHP_URL="https://www.php.net/distributions/php-8.1.33.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.1.33.tar.xz.asc"
-ENV PHP_SHA256="9db83bf4590375562bc1a10b353cccbcf9fcfc56c58b7c8fb814e6865bb928d1"
-
-RUN set -eux; \
- \
- apk add --no-cache --virtual .fetch-deps gnupg; \
- \
- mkdir -p /usr/src; \
- cd /usr/src; \
- \
- curl -fsSL -o php.tar.xz "$PHP_URL"; \
- \
- if [ -n "$PHP_SHA256" ]; then \
- echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \
- fi; \
- \
- curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \
- export GNUPGHOME="$(mktemp -d)"; \
- for key in $GPG_KEYS; do \
- gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
- done; \
- gpg --batch --verify php.tar.xz.asc php.tar.xz; \
- gpgconf --kill all; \
- rm -rf "$GNUPGHOME"; \
- \
- apk del --no-network .fetch-deps
-
-COPY docker-php-source /usr/local/bin/
-
-RUN set -eux; \
- apk add --no-cache --virtual .build-deps \
- $PHPIZE_DEPS \
- argon2-dev \
- coreutils \
- curl-dev \
- gnu-libiconv-dev \
- libsodium-dev \
- libxml2-dev \
- linux-headers \
- oniguruma-dev \
- openssl-dev \
- patch \
- patchutils \
- readline-dev \
- sqlite-dev \
- ; \
- \
-# make sure musl's iconv doesn't get used (https://www.php.net/manual/en/intro.iconv.php)
- rm -vf /usr/include/iconv.h; \
- \
- export \
- CFLAGS="$PHP_CFLAGS" \
- CPPFLAGS="$PHP_CPPFLAGS" \
- LDFLAGS="$PHP_LDFLAGS" \
-# https://github.com/php/php-src/blob/d6299206dd828382753453befd1b915491b741c6/configure.ac#L1496-L1511
- PHP_BUILD_PROVIDER='https://github.com/docker-library/php' \
- PHP_UNAME='Linux - Docker' \
- ; \
- docker-php-source extract; \
- cd /usr/src/php; \
-# Apply patches; see https://github.com/docker-library/php/pull/1552
- # https://github.com/php/php-src/issues/11678
- curl -fL 'https://github.com/php/php-src/commit/577b8ae4226368e66fee7a9b5c58f9e2428372fc.patch?full_index=1' -o 11678.patch; \
- echo '6edc20c3bb3e7cc13515abce7f2fffa8ebea6cf7469abfbc78fcdc120350b239 *11678.patch' | sha256sum -c -; \
- patch -p1 < 11678.patch; \
- rm 11678.patch; \
- # https://github.com/php/php-src/issues/14834
- curl -fL 'https://github.com/php/php-src/commit/67259e451d5d58b4842776c5696a66d74e157609.patch?full_index=1' -o 14834.patch; \
- echo 'ed10a1b254091ad676ed204e55628ecbd6c8962004d6185a1821cedecd526c0f *14834.patch' | sha256sum -c -; \
- filterdiff -x '*/NEWS' 14834.patch | patch -p1; \
- rm 14834.patch; \
- gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
- test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; \
- ./configure \
- --build="$gnuArch" \
- --sysconfdir="${PHP_INI_DIR%/php}" \
- --with-config-file-path="$PHP_INI_DIR" \
- --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \
- \
-# make sure invalid --configure-flags are fatal errors instead of just warnings
- --enable-option-checking=fatal \
- \
-# https://github.com/docker-library/php/issues/439
- --with-mhash \
- \
-# https://github.com/docker-library/php/issues/822
- --with-pic \
- \
-# --enable-ftp is included here for compatibility with existing versions. ftp_ssl_connect() needed ftp to be compiled statically before PHP 7.0 (see https://github.com/docker-library/php/issues/236).
- --enable-ftp \
-# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
- --enable-mbstring \
-# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
- --enable-mysqlnd \
-# https://wiki.php.net/rfc/argon2_password_hash
- --with-password-argon2 \
-# https://wiki.php.net/rfc/libsodium
- --with-sodium=shared \
-# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109)
- --with-pdo-sqlite=/usr \
- --with-sqlite3=/usr \
- \
- --with-curl \
- --with-iconv=/usr \
- --with-openssl \
- --with-readline \
- --with-zlib \
- \
-# https://github.com/bwoebi/phpdbg-docs/issues/1#issuecomment-163872806 ("phpdbg is primarily a CLI debugger, and is not suitable for debugging an fpm stack.")
- --disable-phpdbg \
- \
-# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
- --with-pear \
- \
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
- $(test "$gnuArch" = 'riscv64-linux-musl' && echo '--without-pcre-jit') \
- \
- --disable-cgi \
- \
- --enable-fpm \
- --with-fpm-user=www-data \
- --with-fpm-group=www-data \
- ; \
- make -j "$(nproc)"; \
- find -type f -name '*.a' -delete; \
- make install; \
- find \
- /usr/local \
- -type f \
- -perm '/0111' \
- -exec sh -euxc ' \
- strip --strip-all "$@" || : \
- ' -- '{}' + \
- ; \
- make clean; \
- \
-# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable)
- cp -v php.ini-* "$PHP_INI_DIR/"; \
- \
- cd /; \
- docker-php-source delete; \
- \
- 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-cache $runDeps; \
- \
- apk del --no-network .build-deps; \
- \
-# update pecl channel definitions https://github.com/docker-library/php/issues/443
- pecl update-channels; \
- rm -rf /tmp/pear ~/.pearrc; \
- \
-# smoke test
- php --version
-
-COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
-
-# enable OPcache by default (https://wiki.php.net/rfc/make_opcache_required)
-RUN docker-php-ext-enable opcache
-
-# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598)
-RUN docker-php-ext-enable sodium
-
-ENTRYPOINT ["docker-php-entrypoint"]
-WORKDIR /var/www/html
-
-RUN set -eux; \
- cd "${PHP_INI_DIR%/php}"; \
- \
- cp -v php-fpm.conf.default php-fpm.conf; \
- cp -v php-fpm.d/www.conf.default php-fpm.d/www.conf; \
- \
- { \
- echo '[global]'; \
- echo 'error_log = /proc/self/fd/2'; \
- echo; echo '; https://github.com/docker-library/php/pull/725#issuecomment-443540114'; echo 'log_limit = 8192'; \
- echo; \
- echo '[www]'; \
- echo '; php-fpm closes STDOUT on startup, so sending logs to /proc/self/fd/1 does not work.'; \
- echo '; https://bugs.php.net/bug.php?id=73886'; \
- echo 'access.log = /proc/self/fd/2'; \
- echo; \
- echo 'clear_env = no'; \
- echo; \
- echo '; Ensure worker stdout and stderr are sent to the main error log.'; \
- echo 'catch_workers_output = yes'; \
- echo 'decorate_workers_output = no'; \
- } | tee php-fpm.d/docker.conf; \
- { \
- echo '[global]'; \
- echo 'daemonize = no'; \
- echo; \
- echo '[www]'; \
- echo 'listen = 9000'; \
- } | tee php-fpm.d/zz-docker.conf; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
- { \
- echo '; https://github.com/docker-library/php/issues/878#issuecomment-938595965'; \
- echo 'fastcgi.logging = Off'; \
- } > "$PHP_INI_DIR/conf.d/docker-fpm.ini"
-
-# Override stop signal to stop process gracefully
-# https://github.com/php/php-src/blob/17baa87faddc2550def3ae7314236826bc1b1398/sapi/fpm/php-fpm.8.in#L163
-STOPSIGNAL SIGQUIT
-
-EXPOSE 9000
-CMD ["php-fpm"]
diff --git a/8.1/alpine3.22/zts/Dockerfile b/8.1/alpine3.22/zts/Dockerfile
deleted file mode 100644
index 4934977c5..000000000
--- a/8.1/alpine3.22/zts/Dockerfile
+++ /dev/null
@@ -1,239 +0,0 @@
-#
-# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
-#
-# PLEASE DO NOT EDIT IT DIRECTLY.
-#
-
-FROM alpine:3.22
-
-# dependencies required for running "phpize"
-# these get automatically installed and removed by "docker-php-ext-*" (unless they're already installed)
-ENV PHPIZE_DEPS \
- autoconf \
- dpkg-dev dpkg \
- file \
- g++ \
- gcc \
- libc-dev \
- make \
- pkgconf \
- re2c
-
-# persistent / runtime deps
-RUN apk add --no-cache \
- ca-certificates \
- curl \
- openssl \
- tar \
- xz
-
-# ensure www-data user exists
-RUN set -eux; \
- adduser -u 82 -D -S -G www-data www-data
-# 82 is the standard uid/gid for "www-data" in Alpine
-# https://git.alpinelinux.org/aports/tree/main/apache2/apache2.pre-install?h=3.14-stable
-# https://git.alpinelinux.org/aports/tree/main/lighttpd/lighttpd.pre-install?h=3.14-stable
-# https://git.alpinelinux.org/aports/tree/main/nginx/nginx.pre-install?h=3.14-stable
-
-ENV PHP_INI_DIR /usr/local/etc/php
-RUN set -eux; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
-# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743)
- [ ! -d /var/www/html ]; \
- mkdir -p /var/www/html; \
- chown www-data:www-data /var/www/html; \
- chmod 1777 /var/www/html
-
-# Apply stack smash protection to functions using local buffers and alloca()
-# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64)
-# Enable optimization (-O2)
-# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default)
-# https://github.com/docker-library/php/issues/272
-# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php)
-ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-ENV PHP_CPPFLAGS="$PHP_CFLAGS"
-ENV PHP_LDFLAGS="-Wl,-O1 -pie"
-
-ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD
-
-ENV PHP_VERSION 8.1.33
-ENV PHP_URL="https://www.php.net/distributions/php-8.1.33.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.1.33.tar.xz.asc"
-ENV PHP_SHA256="9db83bf4590375562bc1a10b353cccbcf9fcfc56c58b7c8fb814e6865bb928d1"
-
-RUN set -eux; \
- \
- apk add --no-cache --virtual .fetch-deps gnupg; \
- \
- mkdir -p /usr/src; \
- cd /usr/src; \
- \
- curl -fsSL -o php.tar.xz "$PHP_URL"; \
- \
- if [ -n "$PHP_SHA256" ]; then \
- echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \
- fi; \
- \
- curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \
- export GNUPGHOME="$(mktemp -d)"; \
- for key in $GPG_KEYS; do \
- gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
- done; \
- gpg --batch --verify php.tar.xz.asc php.tar.xz; \
- gpgconf --kill all; \
- rm -rf "$GNUPGHOME"; \
- \
- apk del --no-network .fetch-deps
-
-COPY docker-php-source /usr/local/bin/
-
-RUN set -eux; \
- apk add --no-cache --virtual .build-deps \
- $PHPIZE_DEPS \
- argon2-dev \
- coreutils \
- curl-dev \
- gnu-libiconv-dev \
- libsodium-dev \
- libxml2-dev \
- linux-headers \
- oniguruma-dev \
- openssl-dev \
- patch \
- patchutils \
- readline-dev \
- sqlite-dev \
- ; \
- \
-# make sure musl's iconv doesn't get used (https://www.php.net/manual/en/intro.iconv.php)
- rm -vf /usr/include/iconv.h; \
- \
- export \
- CFLAGS="$PHP_CFLAGS" \
- CPPFLAGS="$PHP_CPPFLAGS" \
- LDFLAGS="$PHP_LDFLAGS" \
-# https://github.com/php/php-src/blob/d6299206dd828382753453befd1b915491b741c6/configure.ac#L1496-L1511
- PHP_BUILD_PROVIDER='https://github.com/docker-library/php' \
- PHP_UNAME='Linux - Docker' \
- ; \
- docker-php-source extract; \
- cd /usr/src/php; \
-# Apply patches; see https://github.com/docker-library/php/pull/1552
- # https://github.com/php/php-src/issues/11678
- curl -fL 'https://github.com/php/php-src/commit/577b8ae4226368e66fee7a9b5c58f9e2428372fc.patch?full_index=1' -o 11678.patch; \
- echo '6edc20c3bb3e7cc13515abce7f2fffa8ebea6cf7469abfbc78fcdc120350b239 *11678.patch' | sha256sum -c -; \
- patch -p1 < 11678.patch; \
- rm 11678.patch; \
- # https://github.com/php/php-src/issues/14834
- curl -fL 'https://github.com/php/php-src/commit/67259e451d5d58b4842776c5696a66d74e157609.patch?full_index=1' -o 14834.patch; \
- echo 'ed10a1b254091ad676ed204e55628ecbd6c8962004d6185a1821cedecd526c0f *14834.patch' | sha256sum -c -; \
- filterdiff -x '*/NEWS' 14834.patch | patch -p1; \
- rm 14834.patch; \
- # https://github.com/php/php-src/issues/18743 "Incompatibility in Inline TLS Assembly on Alpine 3.22 with zend_jit_ir.c"
- # https://github.com/docker-library/php/pull/1580
- curl -fL 'https://github.com/php/php-src/commit/6b105d4bc57e20a2472c9a6ff11fba32768556d4.patch?full_index=1' -o 18743.patch; \
- echo '037e1610ae5d444e9a8c3ecd9d5f0cd215fd0aac90bdd7b9f0b259bffdf3566b *18743.patch' | sha256sum -c -; \
- filterdiff -x '*/NEWS' 18743.patch | patch -p1; \
- rm 18743.patch; \
- gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
- test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; \
- ./configure \
- --build="$gnuArch" \
- --sysconfdir="${PHP_INI_DIR%/php}" \
- --with-config-file-path="$PHP_INI_DIR" \
- --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \
- \
-# make sure invalid --configure-flags are fatal errors instead of just warnings
- --enable-option-checking=fatal \
- \
-# https://github.com/docker-library/php/issues/439
- --with-mhash \
- \
-# https://github.com/docker-library/php/issues/822
- --with-pic \
- \
-# --enable-ftp is included here for compatibility with existing versions. ftp_ssl_connect() needed ftp to be compiled statically before PHP 7.0 (see https://github.com/docker-library/php/issues/236).
- --enable-ftp \
-# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
- --enable-mbstring \
-# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
- --enable-mysqlnd \
-# https://wiki.php.net/rfc/argon2_password_hash
- --with-password-argon2 \
-# https://wiki.php.net/rfc/libsodium
- --with-sodium=shared \
-# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109)
- --with-pdo-sqlite=/usr \
- --with-sqlite3=/usr \
- \
- --with-curl \
- --with-iconv=/usr \
- --with-openssl \
- --with-readline \
- --with-zlib \
- \
-# https://github.com/docker-library/php/pull/1259
- --enable-phpdbg \
- --enable-phpdbg-readline \
- \
-# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
- --with-pear \
- \
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
- $(test "$gnuArch" = 'riscv64-linux-musl' && echo '--without-pcre-jit') \
- \
-# https://github.com/docker-library/php/pull/939#issuecomment-730501748
- --enable-embed \
- \
- --enable-zts \
-# https://externals.io/message/118859
- --disable-zend-signals \
- --enable-zend-max-execution-timers \
- ; \
- make -j "$(nproc)"; \
- find -type f -name '*.a' -delete; \
- make install; \
- find \
- /usr/local \
- -type f \
- -perm '/0111' \
- -exec sh -euxc ' \
- strip --strip-all "$@" || : \
- ' -- '{}' + \
- ; \
- make clean; \
- \
-# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable)
- cp -v php.ini-* "$PHP_INI_DIR/"; \
- \
- cd /; \
- docker-php-source delete; \
- \
- 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-cache $runDeps; \
- \
- apk del --no-network .build-deps; \
- \
-# update pecl channel definitions https://github.com/docker-library/php/issues/443
- pecl update-channels; \
- rm -rf /tmp/pear ~/.pearrc; \
- \
-# smoke test
- php --version
-
-COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
-
-# enable OPcache by default (https://wiki.php.net/rfc/make_opcache_required)
-RUN docker-php-ext-enable opcache
-
-# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598)
-RUN docker-php-ext-enable sodium
-
-ENTRYPOINT ["docker-php-entrypoint"]
-CMD ["php", "-a"]
diff --git a/8.1/bookworm/apache/Dockerfile b/8.1/bookworm/apache/Dockerfile
deleted file mode 100644
index 6e864384b..000000000
--- a/8.1/bookworm/apache/Dockerfile
+++ /dev/null
@@ -1,300 +0,0 @@
-#
-# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
-#
-# PLEASE DO NOT EDIT IT DIRECTLY.
-#
-
-FROM debian:bookworm-slim
-
-# prevent Debian's PHP packages from being installed
-# https://github.com/docker-library/php/pull/542
-RUN set -eux; \
- { \
- echo 'Package: php*'; \
- echo 'Pin: release *'; \
- echo 'Pin-Priority: -1'; \
- } > /etc/apt/preferences.d/no-debian-php
-
-# dependencies required for running "phpize"
-# (see persistent deps below)
-ENV PHPIZE_DEPS \
- autoconf \
- dpkg-dev \
- file \
- g++ \
- gcc \
- libc-dev \
- make \
- pkg-config \
- re2c
-
-# persistent / runtime deps
-RUN set -eux; \
- apt-get update; \
- apt-get install -y --no-install-recommends \
- $PHPIZE_DEPS \
- ca-certificates \
- curl \
- xz-utils \
- ; \
- rm -rf /var/lib/apt/lists/*
-
-ENV PHP_INI_DIR /usr/local/etc/php
-RUN set -eux; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
-# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743)
- [ ! -d /var/www/html ]; \
- mkdir -p /var/www/html; \
- chown www-data:www-data /var/www/html; \
- chmod 1777 /var/www/html
-
-ENV APACHE_CONFDIR /etc/apache2
-ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars
-
-RUN set -eux; \
- apt-get update; \
- apt-get install -y --no-install-recommends apache2; \
- rm -rf /var/lib/apt/lists/*; \
- \
-# generically convert lines like
-# export APACHE_RUN_USER=www-data
-# into
-# : ${APACHE_RUN_USER:=www-data}
-# export APACHE_RUN_USER
-# so that they can be overridden at runtime ("-e APACHE_RUN_USER=...")
- sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS"; \
- \
-# setup directories and permissions
- . "$APACHE_ENVVARS"; \
- for dir in \
- "$APACHE_LOCK_DIR" \
- "$APACHE_RUN_DIR" \
- "$APACHE_LOG_DIR" \
-# https://salsa.debian.org/apache-team/apache2/-/commit/b97ca8714890ead1ba6c095699dde752e8433205
- "$APACHE_RUN_DIR/socks" \
- ; do \
- rm -rvf "$dir"; \
- mkdir -p "$dir"; \
- chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; \
-# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743)
- chmod 1777 "$dir"; \
- done; \
- \
-# delete the "index.html" that installing Apache drops in here
- rm -rvf /var/www/html/*; \
- \
-# logs should go to stdout / stderr
- ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log"; \
- ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log"; \
- ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"; \
- chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$APACHE_LOG_DIR"
-
-# Apache + PHP requires preforking Apache for best results
-RUN a2dismod mpm_event && a2enmod mpm_prefork
-
-# PHP files should be handled by PHP, and should be preferred over any other file type
-RUN { \
- echo ''; \
- echo '\tSetHandler application/x-httpd-php'; \
- echo ''; \
- echo; \
- echo 'DirectoryIndex disabled'; \
- echo 'DirectoryIndex index.php index.html'; \
- echo; \
- echo ''; \
- echo '\tOptions -Indexes'; \
- echo '\tAllowOverride All'; \
- echo ''; \
- } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" \
- && a2enconf docker-php
-
-# Apply stack smash protection to functions using local buffers and alloca()
-# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64)
-# Enable optimization (-O2)
-# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default)
-# https://github.com/docker-library/php/issues/272
-# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php)
-ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-ENV PHP_CPPFLAGS="$PHP_CFLAGS"
-ENV PHP_LDFLAGS="-Wl,-O1 -pie"
-
-ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD
-
-ENV PHP_VERSION 8.1.33
-ENV PHP_URL="https://www.php.net/distributions/php-8.1.33.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.1.33.tar.xz.asc"
-ENV PHP_SHA256="9db83bf4590375562bc1a10b353cccbcf9fcfc56c58b7c8fb814e6865bb928d1"
-
-RUN set -eux; \
- \
- savedAptMark="$(apt-mark showmanual)"; \
- apt-get update; \
- apt-get install -y --no-install-recommends gnupg; \
- rm -rf /var/lib/apt/lists/*; \
- \
- mkdir -p /usr/src; \
- cd /usr/src; \
- \
- curl -fsSL -o php.tar.xz "$PHP_URL"; \
- \
- if [ -n "$PHP_SHA256" ]; then \
- echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \
- fi; \
- \
- curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \
- export GNUPGHOME="$(mktemp -d)"; \
- for key in $GPG_KEYS; do \
- gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
- done; \
- gpg --batch --verify php.tar.xz.asc php.tar.xz; \
- gpgconf --kill all; \
- rm -rf "$GNUPGHOME"; \
- \
- apt-mark auto '.*' > /dev/null; \
- apt-mark manual $savedAptMark > /dev/null; \
- apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
-
-COPY docker-php-source /usr/local/bin/
-
-RUN set -eux; \
- \
- savedAptMark="$(apt-mark showmanual)"; \
- apt-get update; \
- apt-get install -y --no-install-recommends \
- apache2-dev \
- libargon2-dev \
- libcurl4-openssl-dev \
- libonig-dev \
- libreadline-dev \
- libsodium-dev \
- libsqlite3-dev \
- libssl-dev \
- libxml2-dev \
- zlib1g-dev \
- ; \
- \
- export \
- CFLAGS="$PHP_CFLAGS" \
- CPPFLAGS="$PHP_CPPFLAGS" \
- LDFLAGS="$PHP_LDFLAGS" \
-# https://github.com/php/php-src/blob/d6299206dd828382753453befd1b915491b741c6/configure.ac#L1496-L1511
- PHP_BUILD_PROVIDER='https://github.com/docker-library/php' \
- PHP_UNAME='Linux - Docker' \
- ; \
- docker-php-source extract; \
- cd /usr/src/php; \
- gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
- debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
-# https://bugs.php.net/bug.php?id=74125
- if [ ! -d /usr/include/curl ]; then \
- ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \
- fi; \
- test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; \
- ./configure \
- --build="$gnuArch" \
- --sysconfdir="${PHP_INI_DIR%/php}" \
- --with-config-file-path="$PHP_INI_DIR" \
- --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \
- \
-# make sure invalid --configure-flags are fatal errors instead of just warnings
- --enable-option-checking=fatal \
- \
-# https://github.com/docker-library/php/issues/439
- --with-mhash \
- \
-# https://github.com/docker-library/php/issues/822
- --with-pic \
- \
-# --enable-ftp is included here for compatibility with existing versions. ftp_ssl_connect() needed ftp to be compiled statically before PHP 7.0 (see https://github.com/docker-library/php/issues/236).
- --enable-ftp \
-# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
- --enable-mbstring \
-# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
- --enable-mysqlnd \
-# https://wiki.php.net/rfc/argon2_password_hash
- --with-password-argon2 \
-# https://wiki.php.net/rfc/libsodium
- --with-sodium=shared \
-# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109)
- --with-pdo-sqlite=/usr \
- --with-sqlite3=/usr \
- \
- --with-curl \
- --with-iconv \
- --with-openssl \
- --with-readline \
- --with-zlib \
- \
-# https://github.com/bwoebi/phpdbg-docs/issues/1#issuecomment-163872806 ("phpdbg is primarily a CLI debugger, and is not suitable for debugging an fpm stack.")
- --disable-phpdbg \
- \
-# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
- --with-pear \
- \
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
- $(test "$gnuArch" = 'riscv64-linux-gnu' && echo '--without-pcre-jit') \
- --with-libdir="lib/$debMultiarch" \
- \
- --disable-cgi \
- \
- --with-apxs2 \
- ; \
- make -j "$(nproc)"; \
- find -type f -name '*.a' -delete; \
- make install; \
- find \
- /usr/local \
- -type f \
- -perm '/0111' \
- -exec sh -euxc ' \
- strip --strip-all "$@" || : \
- ' -- '{}' + \
- ; \
- make clean; \
- \
-# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable)
- cp -v php.ini-* "$PHP_INI_DIR/"; \
- \
- cd /; \
- docker-php-source delete; \
- \
-# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
- apt-mark auto '.*' > /dev/null; \
- [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
- find /usr/local -type f -executable -exec ldd '{}' ';' \
- | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \
- | sort -u \
- | xargs -rt dpkg-query --search \
-# https://manpages.debian.org/trixie/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file)
- | awk 'sub(":$", "", $1) { print $1 }' \
- | sort -u \
- | xargs -r apt-mark manual \
- ; \
- apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
- rm -rf /var/lib/apt/lists/*; \
- \
-# update pecl channel definitions https://github.com/docker-library/php/issues/443
- pecl update-channels; \
- rm -rf /tmp/pear ~/.pearrc; \
- \
-# smoke test
- php --version
-
-COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
-
-# enable OPcache by default (https://wiki.php.net/rfc/make_opcache_required)
-RUN docker-php-ext-enable opcache
-
-# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598)
-RUN docker-php-ext-enable sodium
-
-ENTRYPOINT ["docker-php-entrypoint"]
-# https://httpd.apache.org/docs/2.4/stopping.html#gracefulstop
-STOPSIGNAL SIGWINCH
-
-COPY apache2-foreground /usr/local/bin/
-WORKDIR /var/www/html
-
-EXPOSE 80
-CMD ["apache2-foreground"]
diff --git a/8.1/bookworm/cli/Dockerfile b/8.1/bookworm/cli/Dockerfile
deleted file mode 100644
index a39286737..000000000
--- a/8.1/bookworm/cli/Dockerfile
+++ /dev/null
@@ -1,232 +0,0 @@
-#
-# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
-#
-# PLEASE DO NOT EDIT IT DIRECTLY.
-#
-
-FROM debian:bookworm-slim
-
-# prevent Debian's PHP packages from being installed
-# https://github.com/docker-library/php/pull/542
-RUN set -eux; \
- { \
- echo 'Package: php*'; \
- echo 'Pin: release *'; \
- echo 'Pin-Priority: -1'; \
- } > /etc/apt/preferences.d/no-debian-php
-
-# dependencies required for running "phpize"
-# (see persistent deps below)
-ENV PHPIZE_DEPS \
- autoconf \
- dpkg-dev \
- file \
- g++ \
- gcc \
- libc-dev \
- make \
- pkg-config \
- re2c
-
-# persistent / runtime deps
-RUN set -eux; \
- apt-get update; \
- apt-get install -y --no-install-recommends \
- $PHPIZE_DEPS \
- ca-certificates \
- curl \
- xz-utils \
- ; \
- rm -rf /var/lib/apt/lists/*
-
-ENV PHP_INI_DIR /usr/local/etc/php
-RUN set -eux; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
-# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743)
- [ ! -d /var/www/html ]; \
- mkdir -p /var/www/html; \
- chown www-data:www-data /var/www/html; \
- chmod 1777 /var/www/html
-
-# Apply stack smash protection to functions using local buffers and alloca()
-# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64)
-# Enable optimization (-O2)
-# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default)
-# https://github.com/docker-library/php/issues/272
-# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php)
-ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-ENV PHP_CPPFLAGS="$PHP_CFLAGS"
-ENV PHP_LDFLAGS="-Wl,-O1 -pie"
-
-ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD
-
-ENV PHP_VERSION 8.1.33
-ENV PHP_URL="https://www.php.net/distributions/php-8.1.33.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.1.33.tar.xz.asc"
-ENV PHP_SHA256="9db83bf4590375562bc1a10b353cccbcf9fcfc56c58b7c8fb814e6865bb928d1"
-
-RUN set -eux; \
- \
- savedAptMark="$(apt-mark showmanual)"; \
- apt-get update; \
- apt-get install -y --no-install-recommends gnupg; \
- rm -rf /var/lib/apt/lists/*; \
- \
- mkdir -p /usr/src; \
- cd /usr/src; \
- \
- curl -fsSL -o php.tar.xz "$PHP_URL"; \
- \
- if [ -n "$PHP_SHA256" ]; then \
- echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \
- fi; \
- \
- curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \
- export GNUPGHOME="$(mktemp -d)"; \
- for key in $GPG_KEYS; do \
- gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
- done; \
- gpg --batch --verify php.tar.xz.asc php.tar.xz; \
- gpgconf --kill all; \
- rm -rf "$GNUPGHOME"; \
- \
- apt-mark auto '.*' > /dev/null; \
- apt-mark manual $savedAptMark > /dev/null; \
- apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
-
-COPY docker-php-source /usr/local/bin/
-
-RUN set -eux; \
- \
- savedAptMark="$(apt-mark showmanual)"; \
- apt-get update; \
- apt-get install -y --no-install-recommends \
- libargon2-dev \
- libcurl4-openssl-dev \
- libonig-dev \
- libreadline-dev \
- libsodium-dev \
- libsqlite3-dev \
- libssl-dev \
- libxml2-dev \
- zlib1g-dev \
- ; \
- \
- export \
- CFLAGS="$PHP_CFLAGS" \
- CPPFLAGS="$PHP_CPPFLAGS" \
- LDFLAGS="$PHP_LDFLAGS" \
-# https://github.com/php/php-src/blob/d6299206dd828382753453befd1b915491b741c6/configure.ac#L1496-L1511
- PHP_BUILD_PROVIDER='https://github.com/docker-library/php' \
- PHP_UNAME='Linux - Docker' \
- ; \
- docker-php-source extract; \
- cd /usr/src/php; \
- gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
- debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
-# https://bugs.php.net/bug.php?id=74125
- if [ ! -d /usr/include/curl ]; then \
- ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \
- fi; \
- test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; \
- ./configure \
- --build="$gnuArch" \
- --sysconfdir="${PHP_INI_DIR%/php}" \
- --with-config-file-path="$PHP_INI_DIR" \
- --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \
- \
-# make sure invalid --configure-flags are fatal errors instead of just warnings
- --enable-option-checking=fatal \
- \
-# https://github.com/docker-library/php/issues/439
- --with-mhash \
- \
-# https://github.com/docker-library/php/issues/822
- --with-pic \
- \
-# --enable-ftp is included here for compatibility with existing versions. ftp_ssl_connect() needed ftp to be compiled statically before PHP 7.0 (see https://github.com/docker-library/php/issues/236).
- --enable-ftp \
-# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
- --enable-mbstring \
-# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
- --enable-mysqlnd \
-# https://wiki.php.net/rfc/argon2_password_hash
- --with-password-argon2 \
-# https://wiki.php.net/rfc/libsodium
- --with-sodium=shared \
-# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109)
- --with-pdo-sqlite=/usr \
- --with-sqlite3=/usr \
- \
- --with-curl \
- --with-iconv \
- --with-openssl \
- --with-readline \
- --with-zlib \
- \
-# https://github.com/docker-library/php/pull/1259
- --enable-phpdbg \
- --enable-phpdbg-readline \
- \
-# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
- --with-pear \
- \
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
- $(test "$gnuArch" = 'riscv64-linux-gnu' && echo '--without-pcre-jit') \
- --with-libdir="lib/$debMultiarch" \
- \
-# https://github.com/docker-library/php/pull/939#issuecomment-730501748
- --enable-embed \
- ; \
- make -j "$(nproc)"; \
- find -type f -name '*.a' -delete; \
- make install; \
- find \
- /usr/local \
- -type f \
- -perm '/0111' \
- -exec sh -euxc ' \
- strip --strip-all "$@" || : \
- ' -- '{}' + \
- ; \
- make clean; \
- \
-# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable)
- cp -v php.ini-* "$PHP_INI_DIR/"; \
- \
- cd /; \
- docker-php-source delete; \
- \
-# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
- apt-mark auto '.*' > /dev/null; \
- [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
- find /usr/local -type f -executable -exec ldd '{}' ';' \
- | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \
- | sort -u \
- | xargs -rt dpkg-query --search \
-# https://manpages.debian.org/trixie/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file)
- | awk 'sub(":$", "", $1) { print $1 }' \
- | sort -u \
- | xargs -r apt-mark manual \
- ; \
- apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
- rm -rf /var/lib/apt/lists/*; \
- \
-# update pecl channel definitions https://github.com/docker-library/php/issues/443
- pecl update-channels; \
- rm -rf /tmp/pear ~/.pearrc; \
- \
-# smoke test
- php --version
-
-COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
-
-# enable OPcache by default (https://wiki.php.net/rfc/make_opcache_required)
-RUN docker-php-ext-enable opcache
-
-# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598)
-RUN docker-php-ext-enable sodium
-
-ENTRYPOINT ["docker-php-entrypoint"]
-CMD ["php", "-a"]
diff --git a/8.1/bookworm/fpm/Dockerfile b/8.1/bookworm/fpm/Dockerfile
deleted file mode 100644
index a9dbd9199..000000000
--- a/8.1/bookworm/fpm/Dockerfile
+++ /dev/null
@@ -1,276 +0,0 @@
-#
-# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
-#
-# PLEASE DO NOT EDIT IT DIRECTLY.
-#
-
-FROM debian:bookworm-slim
-
-# prevent Debian's PHP packages from being installed
-# https://github.com/docker-library/php/pull/542
-RUN set -eux; \
- { \
- echo 'Package: php*'; \
- echo 'Pin: release *'; \
- echo 'Pin-Priority: -1'; \
- } > /etc/apt/preferences.d/no-debian-php
-
-# dependencies required for running "phpize"
-# (see persistent deps below)
-ENV PHPIZE_DEPS \
- autoconf \
- dpkg-dev \
- file \
- g++ \
- gcc \
- libc-dev \
- make \
- pkg-config \
- re2c
-
-# persistent / runtime deps
-RUN set -eux; \
- apt-get update; \
- apt-get install -y --no-install-recommends \
- $PHPIZE_DEPS \
- ca-certificates \
- curl \
- xz-utils \
- ; \
- rm -rf /var/lib/apt/lists/*
-
-ENV PHP_INI_DIR /usr/local/etc/php
-RUN set -eux; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
-# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743)
- [ ! -d /var/www/html ]; \
- mkdir -p /var/www/html; \
- chown www-data:www-data /var/www/html; \
- chmod 1777 /var/www/html
-
-# Apply stack smash protection to functions using local buffers and alloca()
-# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64)
-# Enable optimization (-O2)
-# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default)
-# https://github.com/docker-library/php/issues/272
-# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php)
-ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-ENV PHP_CPPFLAGS="$PHP_CFLAGS"
-ENV PHP_LDFLAGS="-Wl,-O1 -pie"
-
-ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD
-
-ENV PHP_VERSION 8.1.33
-ENV PHP_URL="https://www.php.net/distributions/php-8.1.33.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.1.33.tar.xz.asc"
-ENV PHP_SHA256="9db83bf4590375562bc1a10b353cccbcf9fcfc56c58b7c8fb814e6865bb928d1"
-
-RUN set -eux; \
- \
- savedAptMark="$(apt-mark showmanual)"; \
- apt-get update; \
- apt-get install -y --no-install-recommends gnupg; \
- rm -rf /var/lib/apt/lists/*; \
- \
- mkdir -p /usr/src; \
- cd /usr/src; \
- \
- curl -fsSL -o php.tar.xz "$PHP_URL"; \
- \
- if [ -n "$PHP_SHA256" ]; then \
- echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \
- fi; \
- \
- curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \
- export GNUPGHOME="$(mktemp -d)"; \
- for key in $GPG_KEYS; do \
- gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
- done; \
- gpg --batch --verify php.tar.xz.asc php.tar.xz; \
- gpgconf --kill all; \
- rm -rf "$GNUPGHOME"; \
- \
- apt-mark auto '.*' > /dev/null; \
- apt-mark manual $savedAptMark > /dev/null; \
- apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
-
-COPY docker-php-source /usr/local/bin/
-
-RUN set -eux; \
- \
- savedAptMark="$(apt-mark showmanual)"; \
- apt-get update; \
- apt-get install -y --no-install-recommends \
- libargon2-dev \
- libcurl4-openssl-dev \
- libonig-dev \
- libreadline-dev \
- libsodium-dev \
- libsqlite3-dev \
- libssl-dev \
- libxml2-dev \
- zlib1g-dev \
- ; \
- \
- export \
- CFLAGS="$PHP_CFLAGS" \
- CPPFLAGS="$PHP_CPPFLAGS" \
- LDFLAGS="$PHP_LDFLAGS" \
-# https://github.com/php/php-src/blob/d6299206dd828382753453befd1b915491b741c6/configure.ac#L1496-L1511
- PHP_BUILD_PROVIDER='https://github.com/docker-library/php' \
- PHP_UNAME='Linux - Docker' \
- ; \
- docker-php-source extract; \
- cd /usr/src/php; \
- gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
- debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
-# https://bugs.php.net/bug.php?id=74125
- if [ ! -d /usr/include/curl ]; then \
- ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \
- fi; \
- test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; \
- ./configure \
- --build="$gnuArch" \
- --sysconfdir="${PHP_INI_DIR%/php}" \
- --with-config-file-path="$PHP_INI_DIR" \
- --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \
- \
-# make sure invalid --configure-flags are fatal errors instead of just warnings
- --enable-option-checking=fatal \
- \
-# https://github.com/docker-library/php/issues/439
- --with-mhash \
- \
-# https://github.com/docker-library/php/issues/822
- --with-pic \
- \
-# --enable-ftp is included here for compatibility with existing versions. ftp_ssl_connect() needed ftp to be compiled statically before PHP 7.0 (see https://github.com/docker-library/php/issues/236).
- --enable-ftp \
-# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
- --enable-mbstring \
-# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
- --enable-mysqlnd \
-# https://wiki.php.net/rfc/argon2_password_hash
- --with-password-argon2 \
-# https://wiki.php.net/rfc/libsodium
- --with-sodium=shared \
-# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109)
- --with-pdo-sqlite=/usr \
- --with-sqlite3=/usr \
- \
- --with-curl \
- --with-iconv \
- --with-openssl \
- --with-readline \
- --with-zlib \
- \
-# https://github.com/bwoebi/phpdbg-docs/issues/1#issuecomment-163872806 ("phpdbg is primarily a CLI debugger, and is not suitable for debugging an fpm stack.")
- --disable-phpdbg \
- \
-# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
- --with-pear \
- \
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
- $(test "$gnuArch" = 'riscv64-linux-gnu' && echo '--without-pcre-jit') \
- --with-libdir="lib/$debMultiarch" \
- \
- --disable-cgi \
- \
- --enable-fpm \
- --with-fpm-user=www-data \
- --with-fpm-group=www-data \
- ; \
- make -j "$(nproc)"; \
- find -type f -name '*.a' -delete; \
- make install; \
- find \
- /usr/local \
- -type f \
- -perm '/0111' \
- -exec sh -euxc ' \
- strip --strip-all "$@" || : \
- ' -- '{}' + \
- ; \
- make clean; \
- \
-# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable)
- cp -v php.ini-* "$PHP_INI_DIR/"; \
- \
- cd /; \
- docker-php-source delete; \
- \
-# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
- apt-mark auto '.*' > /dev/null; \
- [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
- find /usr/local -type f -executable -exec ldd '{}' ';' \
- | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \
- | sort -u \
- | xargs -rt dpkg-query --search \
-# https://manpages.debian.org/trixie/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file)
- | awk 'sub(":$", "", $1) { print $1 }' \
- | sort -u \
- | xargs -r apt-mark manual \
- ; \
- apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
- rm -rf /var/lib/apt/lists/*; \
- \
-# update pecl channel definitions https://github.com/docker-library/php/issues/443
- pecl update-channels; \
- rm -rf /tmp/pear ~/.pearrc; \
- \
-# smoke test
- php --version
-
-COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
-
-# enable OPcache by default (https://wiki.php.net/rfc/make_opcache_required)
-RUN docker-php-ext-enable opcache
-
-# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598)
-RUN docker-php-ext-enable sodium
-
-ENTRYPOINT ["docker-php-entrypoint"]
-WORKDIR /var/www/html
-
-RUN set -eux; \
- cd "${PHP_INI_DIR%/php}"; \
- \
- cp -v php-fpm.conf.default php-fpm.conf; \
- cp -v php-fpm.d/www.conf.default php-fpm.d/www.conf; \
- \
- { \
- echo '[global]'; \
- echo 'error_log = /proc/self/fd/2'; \
- echo; echo '; https://github.com/docker-library/php/pull/725#issuecomment-443540114'; echo 'log_limit = 8192'; \
- echo; \
- echo '[www]'; \
- echo '; php-fpm closes STDOUT on startup, so sending logs to /proc/self/fd/1 does not work.'; \
- echo '; https://bugs.php.net/bug.php?id=73886'; \
- echo 'access.log = /proc/self/fd/2'; \
- echo; \
- echo 'clear_env = no'; \
- echo; \
- echo '; Ensure worker stdout and stderr are sent to the main error log.'; \
- echo 'catch_workers_output = yes'; \
- echo 'decorate_workers_output = no'; \
- } | tee php-fpm.d/docker.conf; \
- { \
- echo '[global]'; \
- echo 'daemonize = no'; \
- echo; \
- echo '[www]'; \
- echo 'listen = 9000'; \
- } | tee php-fpm.d/zz-docker.conf; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
- { \
- echo '; https://github.com/docker-library/php/issues/878#issuecomment-938595965'; \
- echo 'fastcgi.logging = Off'; \
- } > "$PHP_INI_DIR/conf.d/docker-fpm.ini"
-
-# Override stop signal to stop process gracefully
-# https://github.com/php/php-src/blob/17baa87faddc2550def3ae7314236826bc1b1398/sapi/fpm/php-fpm.8.in#L163
-STOPSIGNAL SIGQUIT
-
-EXPOSE 9000
-CMD ["php-fpm"]
diff --git a/8.1/bookworm/zts/Dockerfile b/8.1/bookworm/zts/Dockerfile
deleted file mode 100644
index 044ffe8bc..000000000
--- a/8.1/bookworm/zts/Dockerfile
+++ /dev/null
@@ -1,237 +0,0 @@
-#
-# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
-#
-# PLEASE DO NOT EDIT IT DIRECTLY.
-#
-
-FROM debian:bookworm-slim
-
-# prevent Debian's PHP packages from being installed
-# https://github.com/docker-library/php/pull/542
-RUN set -eux; \
- { \
- echo 'Package: php*'; \
- echo 'Pin: release *'; \
- echo 'Pin-Priority: -1'; \
- } > /etc/apt/preferences.d/no-debian-php
-
-# dependencies required for running "phpize"
-# (see persistent deps below)
-ENV PHPIZE_DEPS \
- autoconf \
- dpkg-dev \
- file \
- g++ \
- gcc \
- libc-dev \
- make \
- pkg-config \
- re2c
-
-# persistent / runtime deps
-RUN set -eux; \
- apt-get update; \
- apt-get install -y --no-install-recommends \
- $PHPIZE_DEPS \
- ca-certificates \
- curl \
- xz-utils \
- ; \
- rm -rf /var/lib/apt/lists/*
-
-ENV PHP_INI_DIR /usr/local/etc/php
-RUN set -eux; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
-# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743)
- [ ! -d /var/www/html ]; \
- mkdir -p /var/www/html; \
- chown www-data:www-data /var/www/html; \
- chmod 1777 /var/www/html
-
-# Apply stack smash protection to functions using local buffers and alloca()
-# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64)
-# Enable optimization (-O2)
-# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default)
-# https://github.com/docker-library/php/issues/272
-# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php)
-ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-ENV PHP_CPPFLAGS="$PHP_CFLAGS"
-ENV PHP_LDFLAGS="-Wl,-O1 -pie"
-
-ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD
-
-ENV PHP_VERSION 8.1.33
-ENV PHP_URL="https://www.php.net/distributions/php-8.1.33.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.1.33.tar.xz.asc"
-ENV PHP_SHA256="9db83bf4590375562bc1a10b353cccbcf9fcfc56c58b7c8fb814e6865bb928d1"
-
-RUN set -eux; \
- \
- savedAptMark="$(apt-mark showmanual)"; \
- apt-get update; \
- apt-get install -y --no-install-recommends gnupg; \
- rm -rf /var/lib/apt/lists/*; \
- \
- mkdir -p /usr/src; \
- cd /usr/src; \
- \
- curl -fsSL -o php.tar.xz "$PHP_URL"; \
- \
- if [ -n "$PHP_SHA256" ]; then \
- echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \
- fi; \
- \
- curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \
- export GNUPGHOME="$(mktemp -d)"; \
- for key in $GPG_KEYS; do \
- gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
- done; \
- gpg --batch --verify php.tar.xz.asc php.tar.xz; \
- gpgconf --kill all; \
- rm -rf "$GNUPGHOME"; \
- \
- apt-mark auto '.*' > /dev/null; \
- apt-mark manual $savedAptMark > /dev/null; \
- apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
-
-COPY docker-php-source /usr/local/bin/
-
-RUN set -eux; \
- \
- savedAptMark="$(apt-mark showmanual)"; \
- apt-get update; \
- apt-get install -y --no-install-recommends \
- libargon2-dev \
- libcurl4-openssl-dev \
- libonig-dev \
- libreadline-dev \
- libsodium-dev \
- libsqlite3-dev \
- libssl-dev \
- libxml2-dev \
- zlib1g-dev \
- ; \
- \
- export \
- CFLAGS="$PHP_CFLAGS" \
- CPPFLAGS="$PHP_CPPFLAGS" \
- LDFLAGS="$PHP_LDFLAGS" \
-# https://github.com/php/php-src/blob/d6299206dd828382753453befd1b915491b741c6/configure.ac#L1496-L1511
- PHP_BUILD_PROVIDER='https://github.com/docker-library/php' \
- PHP_UNAME='Linux - Docker' \
- ; \
- docker-php-source extract; \
- cd /usr/src/php; \
- gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
- debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
-# https://bugs.php.net/bug.php?id=74125
- if [ ! -d /usr/include/curl ]; then \
- ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \
- fi; \
- test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; \
- ./configure \
- --build="$gnuArch" \
- --sysconfdir="${PHP_INI_DIR%/php}" \
- --with-config-file-path="$PHP_INI_DIR" \
- --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \
- \
-# make sure invalid --configure-flags are fatal errors instead of just warnings
- --enable-option-checking=fatal \
- \
-# https://github.com/docker-library/php/issues/439
- --with-mhash \
- \
-# https://github.com/docker-library/php/issues/822
- --with-pic \
- \
-# --enable-ftp is included here for compatibility with existing versions. ftp_ssl_connect() needed ftp to be compiled statically before PHP 7.0 (see https://github.com/docker-library/php/issues/236).
- --enable-ftp \
-# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
- --enable-mbstring \
-# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
- --enable-mysqlnd \
-# https://wiki.php.net/rfc/argon2_password_hash
- --with-password-argon2 \
-# https://wiki.php.net/rfc/libsodium
- --with-sodium=shared \
-# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109)
- --with-pdo-sqlite=/usr \
- --with-sqlite3=/usr \
- \
- --with-curl \
- --with-iconv \
- --with-openssl \
- --with-readline \
- --with-zlib \
- \
-# https://github.com/docker-library/php/pull/1259
- --enable-phpdbg \
- --enable-phpdbg-readline \
- \
-# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
- --with-pear \
- \
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
- $(test "$gnuArch" = 'riscv64-linux-gnu' && echo '--without-pcre-jit') \
- --with-libdir="lib/$debMultiarch" \
- \
-# https://github.com/docker-library/php/pull/939#issuecomment-730501748
- --enable-embed \
- \
- --enable-zts \
-# https://externals.io/message/118859
- --disable-zend-signals \
- --enable-zend-max-execution-timers \
- ; \
- make -j "$(nproc)"; \
- find -type f -name '*.a' -delete; \
- make install; \
- find \
- /usr/local \
- -type f \
- -perm '/0111' \
- -exec sh -euxc ' \
- strip --strip-all "$@" || : \
- ' -- '{}' + \
- ; \
- make clean; \
- \
-# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable)
- cp -v php.ini-* "$PHP_INI_DIR/"; \
- \
- cd /; \
- docker-php-source delete; \
- \
-# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
- apt-mark auto '.*' > /dev/null; \
- [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
- find /usr/local -type f -executable -exec ldd '{}' ';' \
- | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \
- | sort -u \
- | xargs -rt dpkg-query --search \
-# https://manpages.debian.org/trixie/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file)
- | awk 'sub(":$", "", $1) { print $1 }' \
- | sort -u \
- | xargs -r apt-mark manual \
- ; \
- apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
- rm -rf /var/lib/apt/lists/*; \
- \
-# update pecl channel definitions https://github.com/docker-library/php/issues/443
- pecl update-channels; \
- rm -rf /tmp/pear ~/.pearrc; \
- \
-# smoke test
- php --version
-
-COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
-
-# enable OPcache by default (https://wiki.php.net/rfc/make_opcache_required)
-RUN docker-php-ext-enable opcache
-
-# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598)
-RUN docker-php-ext-enable sodium
-
-ENTRYPOINT ["docker-php-entrypoint"]
-CMD ["php", "-a"]
diff --git a/8.1/trixie/apache/Dockerfile b/8.1/trixie/apache/Dockerfile
deleted file mode 100644
index 679a206de..000000000
--- a/8.1/trixie/apache/Dockerfile
+++ /dev/null
@@ -1,300 +0,0 @@
-#
-# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
-#
-# PLEASE DO NOT EDIT IT DIRECTLY.
-#
-
-FROM debian:trixie-slim
-
-# prevent Debian's PHP packages from being installed
-# https://github.com/docker-library/php/pull/542
-RUN set -eux; \
- { \
- echo 'Package: php*'; \
- echo 'Pin: release *'; \
- echo 'Pin-Priority: -1'; \
- } > /etc/apt/preferences.d/no-debian-php
-
-# dependencies required for running "phpize"
-# (see persistent deps below)
-ENV PHPIZE_DEPS \
- autoconf \
- dpkg-dev \
- file \
- g++ \
- gcc \
- libc-dev \
- make \
- pkg-config \
- re2c
-
-# persistent / runtime deps
-RUN set -eux; \
- apt-get update; \
- apt-get install -y --no-install-recommends \
- $PHPIZE_DEPS \
- ca-certificates \
- curl \
- xz-utils \
- ; \
- apt-get dist-clean
-
-ENV PHP_INI_DIR /usr/local/etc/php
-RUN set -eux; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
-# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743)
- [ ! -d /var/www/html ]; \
- mkdir -p /var/www/html; \
- chown www-data:www-data /var/www/html; \
- chmod 1777 /var/www/html
-
-ENV APACHE_CONFDIR /etc/apache2
-ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars
-
-RUN set -eux; \
- apt-get update; \
- apt-get install -y --no-install-recommends apache2; \
- apt-get dist-clean; \
- \
-# generically convert lines like
-# export APACHE_RUN_USER=www-data
-# into
-# : ${APACHE_RUN_USER:=www-data}
-# export APACHE_RUN_USER
-# so that they can be overridden at runtime ("-e APACHE_RUN_USER=...")
- sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS"; \
- \
-# setup directories and permissions
- . "$APACHE_ENVVARS"; \
- for dir in \
- "$APACHE_LOCK_DIR" \
- "$APACHE_RUN_DIR" \
- "$APACHE_LOG_DIR" \
-# https://salsa.debian.org/apache-team/apache2/-/commit/b97ca8714890ead1ba6c095699dde752e8433205
- "$APACHE_RUN_DIR/socks" \
- ; do \
- rm -rvf "$dir"; \
- mkdir -p "$dir"; \
- chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; \
-# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743)
- chmod 1777 "$dir"; \
- done; \
- \
-# delete the "index.html" that installing Apache drops in here
- rm -rvf /var/www/html/*; \
- \
-# logs should go to stdout / stderr
- ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log"; \
- ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log"; \
- ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"; \
- chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$APACHE_LOG_DIR"
-
-# Apache + PHP requires preforking Apache for best results
-RUN a2dismod mpm_event && a2enmod mpm_prefork
-
-# PHP files should be handled by PHP, and should be preferred over any other file type
-RUN { \
- echo ''; \
- echo '\tSetHandler application/x-httpd-php'; \
- echo ''; \
- echo; \
- echo 'DirectoryIndex disabled'; \
- echo 'DirectoryIndex index.php index.html'; \
- echo; \
- echo ''; \
- echo '\tOptions -Indexes'; \
- echo '\tAllowOverride All'; \
- echo ''; \
- } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" \
- && a2enconf docker-php
-
-# Apply stack smash protection to functions using local buffers and alloca()
-# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64)
-# Enable optimization (-O2)
-# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default)
-# https://github.com/docker-library/php/issues/272
-# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php)
-ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-ENV PHP_CPPFLAGS="$PHP_CFLAGS"
-ENV PHP_LDFLAGS="-Wl,-O1 -pie"
-
-ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD
-
-ENV PHP_VERSION 8.1.33
-ENV PHP_URL="https://www.php.net/distributions/php-8.1.33.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.1.33.tar.xz.asc"
-ENV PHP_SHA256="9db83bf4590375562bc1a10b353cccbcf9fcfc56c58b7c8fb814e6865bb928d1"
-
-RUN set -eux; \
- \
- savedAptMark="$(apt-mark showmanual)"; \
- apt-get update; \
- apt-get install -y --no-install-recommends gnupg; \
- apt-get dist-clean; \
- \
- mkdir -p /usr/src; \
- cd /usr/src; \
- \
- curl -fsSL -o php.tar.xz "$PHP_URL"; \
- \
- if [ -n "$PHP_SHA256" ]; then \
- echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \
- fi; \
- \
- curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \
- export GNUPGHOME="$(mktemp -d)"; \
- for key in $GPG_KEYS; do \
- gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
- done; \
- gpg --batch --verify php.tar.xz.asc php.tar.xz; \
- gpgconf --kill all; \
- rm -rf "$GNUPGHOME"; \
- \
- apt-mark auto '.*' > /dev/null; \
- apt-mark manual $savedAptMark > /dev/null; \
- apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
-
-COPY docker-php-source /usr/local/bin/
-
-RUN set -eux; \
- \
- savedAptMark="$(apt-mark showmanual)"; \
- apt-get update; \
- apt-get install -y --no-install-recommends \
- apache2-dev \
- libargon2-dev \
- libcurl4-openssl-dev \
- libonig-dev \
- libreadline-dev \
- libsodium-dev \
- libsqlite3-dev \
- libssl-dev \
- libxml2-dev \
- zlib1g-dev \
- ; \
- \
- export \
- CFLAGS="$PHP_CFLAGS" \
- CPPFLAGS="$PHP_CPPFLAGS" \
- LDFLAGS="$PHP_LDFLAGS" \
-# https://github.com/php/php-src/blob/d6299206dd828382753453befd1b915491b741c6/configure.ac#L1496-L1511
- PHP_BUILD_PROVIDER='https://github.com/docker-library/php' \
- PHP_UNAME='Linux - Docker' \
- ; \
- docker-php-source extract; \
- cd /usr/src/php; \
- gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
- debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
-# https://bugs.php.net/bug.php?id=74125
- if [ ! -d /usr/include/curl ]; then \
- ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \
- fi; \
- test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; \
- ./configure \
- --build="$gnuArch" \
- --sysconfdir="${PHP_INI_DIR%/php}" \
- --with-config-file-path="$PHP_INI_DIR" \
- --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \
- \
-# make sure invalid --configure-flags are fatal errors instead of just warnings
- --enable-option-checking=fatal \
- \
-# https://github.com/docker-library/php/issues/439
- --with-mhash \
- \
-# https://github.com/docker-library/php/issues/822
- --with-pic \
- \
-# --enable-ftp is included here for compatibility with existing versions. ftp_ssl_connect() needed ftp to be compiled statically before PHP 7.0 (see https://github.com/docker-library/php/issues/236).
- --enable-ftp \
-# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
- --enable-mbstring \
-# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
- --enable-mysqlnd \
-# https://wiki.php.net/rfc/argon2_password_hash
- --with-password-argon2 \
-# https://wiki.php.net/rfc/libsodium
- --with-sodium=shared \
-# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109)
- --with-pdo-sqlite=/usr \
- --with-sqlite3=/usr \
- \
- --with-curl \
- --with-iconv \
- --with-openssl \
- --with-readline \
- --with-zlib \
- \
-# https://github.com/bwoebi/phpdbg-docs/issues/1#issuecomment-163872806 ("phpdbg is primarily a CLI debugger, and is not suitable for debugging an fpm stack.")
- --disable-phpdbg \
- \
-# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
- --with-pear \
- \
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
- $(test "$gnuArch" = 'riscv64-linux-gnu' && echo '--without-pcre-jit') \
- --with-libdir="lib/$debMultiarch" \
- \
- --disable-cgi \
- \
- --with-apxs2 \
- ; \
- make -j "$(nproc)"; \
- find -type f -name '*.a' -delete; \
- make install; \
- find \
- /usr/local \
- -type f \
- -perm '/0111' \
- -exec sh -euxc ' \
- strip --strip-all "$@" || : \
- ' -- '{}' + \
- ; \
- make clean; \
- \
-# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable)
- cp -v php.ini-* "$PHP_INI_DIR/"; \
- \
- cd /; \
- docker-php-source delete; \
- \
-# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
- apt-mark auto '.*' > /dev/null; \
- [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
- find /usr/local -type f -executable -exec ldd '{}' ';' \
- | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \
- | sort -u \
- | xargs -rt dpkg-query --search \
-# https://manpages.debian.org/trixie/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file)
- | awk 'sub(":$", "", $1) { print $1 }' \
- | sort -u \
- | xargs -r apt-mark manual \
- ; \
- apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
- apt-get dist-clean; \
- \
-# update pecl channel definitions https://github.com/docker-library/php/issues/443
- pecl update-channels; \
- rm -rf /tmp/pear ~/.pearrc; \
- \
-# smoke test
- php --version
-
-COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
-
-# enable OPcache by default (https://wiki.php.net/rfc/make_opcache_required)
-RUN docker-php-ext-enable opcache
-
-# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598)
-RUN docker-php-ext-enable sodium
-
-ENTRYPOINT ["docker-php-entrypoint"]
-# https://httpd.apache.org/docs/2.4/stopping.html#gracefulstop
-STOPSIGNAL SIGWINCH
-
-COPY apache2-foreground /usr/local/bin/
-WORKDIR /var/www/html
-
-EXPOSE 80
-CMD ["apache2-foreground"]
diff --git a/8.1/trixie/cli/Dockerfile b/8.1/trixie/cli/Dockerfile
deleted file mode 100644
index 7b51687bf..000000000
--- a/8.1/trixie/cli/Dockerfile
+++ /dev/null
@@ -1,232 +0,0 @@
-#
-# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
-#
-# PLEASE DO NOT EDIT IT DIRECTLY.
-#
-
-FROM debian:trixie-slim
-
-# prevent Debian's PHP packages from being installed
-# https://github.com/docker-library/php/pull/542
-RUN set -eux; \
- { \
- echo 'Package: php*'; \
- echo 'Pin: release *'; \
- echo 'Pin-Priority: -1'; \
- } > /etc/apt/preferences.d/no-debian-php
-
-# dependencies required for running "phpize"
-# (see persistent deps below)
-ENV PHPIZE_DEPS \
- autoconf \
- dpkg-dev \
- file \
- g++ \
- gcc \
- libc-dev \
- make \
- pkg-config \
- re2c
-
-# persistent / runtime deps
-RUN set -eux; \
- apt-get update; \
- apt-get install -y --no-install-recommends \
- $PHPIZE_DEPS \
- ca-certificates \
- curl \
- xz-utils \
- ; \
- apt-get dist-clean
-
-ENV PHP_INI_DIR /usr/local/etc/php
-RUN set -eux; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
-# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743)
- [ ! -d /var/www/html ]; \
- mkdir -p /var/www/html; \
- chown www-data:www-data /var/www/html; \
- chmod 1777 /var/www/html
-
-# Apply stack smash protection to functions using local buffers and alloca()
-# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64)
-# Enable optimization (-O2)
-# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default)
-# https://github.com/docker-library/php/issues/272
-# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php)
-ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-ENV PHP_CPPFLAGS="$PHP_CFLAGS"
-ENV PHP_LDFLAGS="-Wl,-O1 -pie"
-
-ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD
-
-ENV PHP_VERSION 8.1.33
-ENV PHP_URL="https://www.php.net/distributions/php-8.1.33.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.1.33.tar.xz.asc"
-ENV PHP_SHA256="9db83bf4590375562bc1a10b353cccbcf9fcfc56c58b7c8fb814e6865bb928d1"
-
-RUN set -eux; \
- \
- savedAptMark="$(apt-mark showmanual)"; \
- apt-get update; \
- apt-get install -y --no-install-recommends gnupg; \
- apt-get dist-clean; \
- \
- mkdir -p /usr/src; \
- cd /usr/src; \
- \
- curl -fsSL -o php.tar.xz "$PHP_URL"; \
- \
- if [ -n "$PHP_SHA256" ]; then \
- echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \
- fi; \
- \
- curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \
- export GNUPGHOME="$(mktemp -d)"; \
- for key in $GPG_KEYS; do \
- gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
- done; \
- gpg --batch --verify php.tar.xz.asc php.tar.xz; \
- gpgconf --kill all; \
- rm -rf "$GNUPGHOME"; \
- \
- apt-mark auto '.*' > /dev/null; \
- apt-mark manual $savedAptMark > /dev/null; \
- apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
-
-COPY docker-php-source /usr/local/bin/
-
-RUN set -eux; \
- \
- savedAptMark="$(apt-mark showmanual)"; \
- apt-get update; \
- apt-get install -y --no-install-recommends \
- libargon2-dev \
- libcurl4-openssl-dev \
- libonig-dev \
- libreadline-dev \
- libsodium-dev \
- libsqlite3-dev \
- libssl-dev \
- libxml2-dev \
- zlib1g-dev \
- ; \
- \
- export \
- CFLAGS="$PHP_CFLAGS" \
- CPPFLAGS="$PHP_CPPFLAGS" \
- LDFLAGS="$PHP_LDFLAGS" \
-# https://github.com/php/php-src/blob/d6299206dd828382753453befd1b915491b741c6/configure.ac#L1496-L1511
- PHP_BUILD_PROVIDER='https://github.com/docker-library/php' \
- PHP_UNAME='Linux - Docker' \
- ; \
- docker-php-source extract; \
- cd /usr/src/php; \
- gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
- debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
-# https://bugs.php.net/bug.php?id=74125
- if [ ! -d /usr/include/curl ]; then \
- ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \
- fi; \
- test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; \
- ./configure \
- --build="$gnuArch" \
- --sysconfdir="${PHP_INI_DIR%/php}" \
- --with-config-file-path="$PHP_INI_DIR" \
- --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \
- \
-# make sure invalid --configure-flags are fatal errors instead of just warnings
- --enable-option-checking=fatal \
- \
-# https://github.com/docker-library/php/issues/439
- --with-mhash \
- \
-# https://github.com/docker-library/php/issues/822
- --with-pic \
- \
-# --enable-ftp is included here for compatibility with existing versions. ftp_ssl_connect() needed ftp to be compiled statically before PHP 7.0 (see https://github.com/docker-library/php/issues/236).
- --enable-ftp \
-# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
- --enable-mbstring \
-# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
- --enable-mysqlnd \
-# https://wiki.php.net/rfc/argon2_password_hash
- --with-password-argon2 \
-# https://wiki.php.net/rfc/libsodium
- --with-sodium=shared \
-# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109)
- --with-pdo-sqlite=/usr \
- --with-sqlite3=/usr \
- \
- --with-curl \
- --with-iconv \
- --with-openssl \
- --with-readline \
- --with-zlib \
- \
-# https://github.com/docker-library/php/pull/1259
- --enable-phpdbg \
- --enable-phpdbg-readline \
- \
-# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
- --with-pear \
- \
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
- $(test "$gnuArch" = 'riscv64-linux-gnu' && echo '--without-pcre-jit') \
- --with-libdir="lib/$debMultiarch" \
- \
-# https://github.com/docker-library/php/pull/939#issuecomment-730501748
- --enable-embed \
- ; \
- make -j "$(nproc)"; \
- find -type f -name '*.a' -delete; \
- make install; \
- find \
- /usr/local \
- -type f \
- -perm '/0111' \
- -exec sh -euxc ' \
- strip --strip-all "$@" || : \
- ' -- '{}' + \
- ; \
- make clean; \
- \
-# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable)
- cp -v php.ini-* "$PHP_INI_DIR/"; \
- \
- cd /; \
- docker-php-source delete; \
- \
-# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
- apt-mark auto '.*' > /dev/null; \
- [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
- find /usr/local -type f -executable -exec ldd '{}' ';' \
- | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \
- | sort -u \
- | xargs -rt dpkg-query --search \
-# https://manpages.debian.org/trixie/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file)
- | awk 'sub(":$", "", $1) { print $1 }' \
- | sort -u \
- | xargs -r apt-mark manual \
- ; \
- apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
- apt-get dist-clean; \
- \
-# update pecl channel definitions https://github.com/docker-library/php/issues/443
- pecl update-channels; \
- rm -rf /tmp/pear ~/.pearrc; \
- \
-# smoke test
- php --version
-
-COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
-
-# enable OPcache by default (https://wiki.php.net/rfc/make_opcache_required)
-RUN docker-php-ext-enable opcache
-
-# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598)
-RUN docker-php-ext-enable sodium
-
-ENTRYPOINT ["docker-php-entrypoint"]
-CMD ["php", "-a"]
diff --git a/8.1/trixie/fpm/Dockerfile b/8.1/trixie/fpm/Dockerfile
deleted file mode 100644
index 58f32089e..000000000
--- a/8.1/trixie/fpm/Dockerfile
+++ /dev/null
@@ -1,276 +0,0 @@
-#
-# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
-#
-# PLEASE DO NOT EDIT IT DIRECTLY.
-#
-
-FROM debian:trixie-slim
-
-# prevent Debian's PHP packages from being installed
-# https://github.com/docker-library/php/pull/542
-RUN set -eux; \
- { \
- echo 'Package: php*'; \
- echo 'Pin: release *'; \
- echo 'Pin-Priority: -1'; \
- } > /etc/apt/preferences.d/no-debian-php
-
-# dependencies required for running "phpize"
-# (see persistent deps below)
-ENV PHPIZE_DEPS \
- autoconf \
- dpkg-dev \
- file \
- g++ \
- gcc \
- libc-dev \
- make \
- pkg-config \
- re2c
-
-# persistent / runtime deps
-RUN set -eux; \
- apt-get update; \
- apt-get install -y --no-install-recommends \
- $PHPIZE_DEPS \
- ca-certificates \
- curl \
- xz-utils \
- ; \
- apt-get dist-clean
-
-ENV PHP_INI_DIR /usr/local/etc/php
-RUN set -eux; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
-# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743)
- [ ! -d /var/www/html ]; \
- mkdir -p /var/www/html; \
- chown www-data:www-data /var/www/html; \
- chmod 1777 /var/www/html
-
-# Apply stack smash protection to functions using local buffers and alloca()
-# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64)
-# Enable optimization (-O2)
-# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default)
-# https://github.com/docker-library/php/issues/272
-# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php)
-ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-ENV PHP_CPPFLAGS="$PHP_CFLAGS"
-ENV PHP_LDFLAGS="-Wl,-O1 -pie"
-
-ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD
-
-ENV PHP_VERSION 8.1.33
-ENV PHP_URL="https://www.php.net/distributions/php-8.1.33.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.1.33.tar.xz.asc"
-ENV PHP_SHA256="9db83bf4590375562bc1a10b353cccbcf9fcfc56c58b7c8fb814e6865bb928d1"
-
-RUN set -eux; \
- \
- savedAptMark="$(apt-mark showmanual)"; \
- apt-get update; \
- apt-get install -y --no-install-recommends gnupg; \
- apt-get dist-clean; \
- \
- mkdir -p /usr/src; \
- cd /usr/src; \
- \
- curl -fsSL -o php.tar.xz "$PHP_URL"; \
- \
- if [ -n "$PHP_SHA256" ]; then \
- echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \
- fi; \
- \
- curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \
- export GNUPGHOME="$(mktemp -d)"; \
- for key in $GPG_KEYS; do \
- gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
- done; \
- gpg --batch --verify php.tar.xz.asc php.tar.xz; \
- gpgconf --kill all; \
- rm -rf "$GNUPGHOME"; \
- \
- apt-mark auto '.*' > /dev/null; \
- apt-mark manual $savedAptMark > /dev/null; \
- apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
-
-COPY docker-php-source /usr/local/bin/
-
-RUN set -eux; \
- \
- savedAptMark="$(apt-mark showmanual)"; \
- apt-get update; \
- apt-get install -y --no-install-recommends \
- libargon2-dev \
- libcurl4-openssl-dev \
- libonig-dev \
- libreadline-dev \
- libsodium-dev \
- libsqlite3-dev \
- libssl-dev \
- libxml2-dev \
- zlib1g-dev \
- ; \
- \
- export \
- CFLAGS="$PHP_CFLAGS" \
- CPPFLAGS="$PHP_CPPFLAGS" \
- LDFLAGS="$PHP_LDFLAGS" \
-# https://github.com/php/php-src/blob/d6299206dd828382753453befd1b915491b741c6/configure.ac#L1496-L1511
- PHP_BUILD_PROVIDER='https://github.com/docker-library/php' \
- PHP_UNAME='Linux - Docker' \
- ; \
- docker-php-source extract; \
- cd /usr/src/php; \
- gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
- debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
-# https://bugs.php.net/bug.php?id=74125
- if [ ! -d /usr/include/curl ]; then \
- ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \
- fi; \
- test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; \
- ./configure \
- --build="$gnuArch" \
- --sysconfdir="${PHP_INI_DIR%/php}" \
- --with-config-file-path="$PHP_INI_DIR" \
- --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \
- \
-# make sure invalid --configure-flags are fatal errors instead of just warnings
- --enable-option-checking=fatal \
- \
-# https://github.com/docker-library/php/issues/439
- --with-mhash \
- \
-# https://github.com/docker-library/php/issues/822
- --with-pic \
- \
-# --enable-ftp is included here for compatibility with existing versions. ftp_ssl_connect() needed ftp to be compiled statically before PHP 7.0 (see https://github.com/docker-library/php/issues/236).
- --enable-ftp \
-# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
- --enable-mbstring \
-# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
- --enable-mysqlnd \
-# https://wiki.php.net/rfc/argon2_password_hash
- --with-password-argon2 \
-# https://wiki.php.net/rfc/libsodium
- --with-sodium=shared \
-# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109)
- --with-pdo-sqlite=/usr \
- --with-sqlite3=/usr \
- \
- --with-curl \
- --with-iconv \
- --with-openssl \
- --with-readline \
- --with-zlib \
- \
-# https://github.com/bwoebi/phpdbg-docs/issues/1#issuecomment-163872806 ("phpdbg is primarily a CLI debugger, and is not suitable for debugging an fpm stack.")
- --disable-phpdbg \
- \
-# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
- --with-pear \
- \
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
- $(test "$gnuArch" = 'riscv64-linux-gnu' && echo '--without-pcre-jit') \
- --with-libdir="lib/$debMultiarch" \
- \
- --disable-cgi \
- \
- --enable-fpm \
- --with-fpm-user=www-data \
- --with-fpm-group=www-data \
- ; \
- make -j "$(nproc)"; \
- find -type f -name '*.a' -delete; \
- make install; \
- find \
- /usr/local \
- -type f \
- -perm '/0111' \
- -exec sh -euxc ' \
- strip --strip-all "$@" || : \
- ' -- '{}' + \
- ; \
- make clean; \
- \
-# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable)
- cp -v php.ini-* "$PHP_INI_DIR/"; \
- \
- cd /; \
- docker-php-source delete; \
- \
-# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
- apt-mark auto '.*' > /dev/null; \
- [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
- find /usr/local -type f -executable -exec ldd '{}' ';' \
- | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \
- | sort -u \
- | xargs -rt dpkg-query --search \
-# https://manpages.debian.org/trixie/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file)
- | awk 'sub(":$", "", $1) { print $1 }' \
- | sort -u \
- | xargs -r apt-mark manual \
- ; \
- apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
- apt-get dist-clean; \
- \
-# update pecl channel definitions https://github.com/docker-library/php/issues/443
- pecl update-channels; \
- rm -rf /tmp/pear ~/.pearrc; \
- \
-# smoke test
- php --version
-
-COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
-
-# enable OPcache by default (https://wiki.php.net/rfc/make_opcache_required)
-RUN docker-php-ext-enable opcache
-
-# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598)
-RUN docker-php-ext-enable sodium
-
-ENTRYPOINT ["docker-php-entrypoint"]
-WORKDIR /var/www/html
-
-RUN set -eux; \
- cd "${PHP_INI_DIR%/php}"; \
- \
- cp -v php-fpm.conf.default php-fpm.conf; \
- cp -v php-fpm.d/www.conf.default php-fpm.d/www.conf; \
- \
- { \
- echo '[global]'; \
- echo 'error_log = /proc/self/fd/2'; \
- echo; echo '; https://github.com/docker-library/php/pull/725#issuecomment-443540114'; echo 'log_limit = 8192'; \
- echo; \
- echo '[www]'; \
- echo '; php-fpm closes STDOUT on startup, so sending logs to /proc/self/fd/1 does not work.'; \
- echo '; https://bugs.php.net/bug.php?id=73886'; \
- echo 'access.log = /proc/self/fd/2'; \
- echo; \
- echo 'clear_env = no'; \
- echo; \
- echo '; Ensure worker stdout and stderr are sent to the main error log.'; \
- echo 'catch_workers_output = yes'; \
- echo 'decorate_workers_output = no'; \
- } | tee php-fpm.d/docker.conf; \
- { \
- echo '[global]'; \
- echo 'daemonize = no'; \
- echo; \
- echo '[www]'; \
- echo 'listen = 9000'; \
- } | tee php-fpm.d/zz-docker.conf; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
- { \
- echo '; https://github.com/docker-library/php/issues/878#issuecomment-938595965'; \
- echo 'fastcgi.logging = Off'; \
- } > "$PHP_INI_DIR/conf.d/docker-fpm.ini"
-
-# Override stop signal to stop process gracefully
-# https://github.com/php/php-src/blob/17baa87faddc2550def3ae7314236826bc1b1398/sapi/fpm/php-fpm.8.in#L163
-STOPSIGNAL SIGQUIT
-
-EXPOSE 9000
-CMD ["php-fpm"]
diff --git a/8.1/trixie/zts/Dockerfile b/8.1/trixie/zts/Dockerfile
deleted file mode 100644
index f55eded7d..000000000
--- a/8.1/trixie/zts/Dockerfile
+++ /dev/null
@@ -1,237 +0,0 @@
-#
-# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
-#
-# PLEASE DO NOT EDIT IT DIRECTLY.
-#
-
-FROM debian:trixie-slim
-
-# prevent Debian's PHP packages from being installed
-# https://github.com/docker-library/php/pull/542
-RUN set -eux; \
- { \
- echo 'Package: php*'; \
- echo 'Pin: release *'; \
- echo 'Pin-Priority: -1'; \
- } > /etc/apt/preferences.d/no-debian-php
-
-# dependencies required for running "phpize"
-# (see persistent deps below)
-ENV PHPIZE_DEPS \
- autoconf \
- dpkg-dev \
- file \
- g++ \
- gcc \
- libc-dev \
- make \
- pkg-config \
- re2c
-
-# persistent / runtime deps
-RUN set -eux; \
- apt-get update; \
- apt-get install -y --no-install-recommends \
- $PHPIZE_DEPS \
- ca-certificates \
- curl \
- xz-utils \
- ; \
- apt-get dist-clean
-
-ENV PHP_INI_DIR /usr/local/etc/php
-RUN set -eux; \
- mkdir -p "$PHP_INI_DIR/conf.d"; \
-# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743)
- [ ! -d /var/www/html ]; \
- mkdir -p /var/www/html; \
- chown www-data:www-data /var/www/html; \
- chmod 1777 /var/www/html
-
-# Apply stack smash protection to functions using local buffers and alloca()
-# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64)
-# Enable optimization (-O2)
-# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default)
-# https://github.com/docker-library/php/issues/272
-# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php)
-ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-ENV PHP_CPPFLAGS="$PHP_CFLAGS"
-ENV PHP_LDFLAGS="-Wl,-O1 -pie"
-
-ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD
-
-ENV PHP_VERSION 8.1.33
-ENV PHP_URL="https://www.php.net/distributions/php-8.1.33.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.1.33.tar.xz.asc"
-ENV PHP_SHA256="9db83bf4590375562bc1a10b353cccbcf9fcfc56c58b7c8fb814e6865bb928d1"
-
-RUN set -eux; \
- \
- savedAptMark="$(apt-mark showmanual)"; \
- apt-get update; \
- apt-get install -y --no-install-recommends gnupg; \
- apt-get dist-clean; \
- \
- mkdir -p /usr/src; \
- cd /usr/src; \
- \
- curl -fsSL -o php.tar.xz "$PHP_URL"; \
- \
- if [ -n "$PHP_SHA256" ]; then \
- echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \
- fi; \
- \
- curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \
- export GNUPGHOME="$(mktemp -d)"; \
- for key in $GPG_KEYS; do \
- gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
- done; \
- gpg --batch --verify php.tar.xz.asc php.tar.xz; \
- gpgconf --kill all; \
- rm -rf "$GNUPGHOME"; \
- \
- apt-mark auto '.*' > /dev/null; \
- apt-mark manual $savedAptMark > /dev/null; \
- apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
-
-COPY docker-php-source /usr/local/bin/
-
-RUN set -eux; \
- \
- savedAptMark="$(apt-mark showmanual)"; \
- apt-get update; \
- apt-get install -y --no-install-recommends \
- libargon2-dev \
- libcurl4-openssl-dev \
- libonig-dev \
- libreadline-dev \
- libsodium-dev \
- libsqlite3-dev \
- libssl-dev \
- libxml2-dev \
- zlib1g-dev \
- ; \
- \
- export \
- CFLAGS="$PHP_CFLAGS" \
- CPPFLAGS="$PHP_CPPFLAGS" \
- LDFLAGS="$PHP_LDFLAGS" \
-# https://github.com/php/php-src/blob/d6299206dd828382753453befd1b915491b741c6/configure.ac#L1496-L1511
- PHP_BUILD_PROVIDER='https://github.com/docker-library/php' \
- PHP_UNAME='Linux - Docker' \
- ; \
- docker-php-source extract; \
- cd /usr/src/php; \
- gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
- debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
-# https://bugs.php.net/bug.php?id=74125
- if [ ! -d /usr/include/curl ]; then \
- ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \
- fi; \
- test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; \
- ./configure \
- --build="$gnuArch" \
- --sysconfdir="${PHP_INI_DIR%/php}" \
- --with-config-file-path="$PHP_INI_DIR" \
- --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \
- \
-# make sure invalid --configure-flags are fatal errors instead of just warnings
- --enable-option-checking=fatal \
- \
-# https://github.com/docker-library/php/issues/439
- --with-mhash \
- \
-# https://github.com/docker-library/php/issues/822
- --with-pic \
- \
-# --enable-ftp is included here for compatibility with existing versions. ftp_ssl_connect() needed ftp to be compiled statically before PHP 7.0 (see https://github.com/docker-library/php/issues/236).
- --enable-ftp \
-# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
- --enable-mbstring \
-# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
- --enable-mysqlnd \
-# https://wiki.php.net/rfc/argon2_password_hash
- --with-password-argon2 \
-# https://wiki.php.net/rfc/libsodium
- --with-sodium=shared \
-# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109)
- --with-pdo-sqlite=/usr \
- --with-sqlite3=/usr \
- \
- --with-curl \
- --with-iconv \
- --with-openssl \
- --with-readline \
- --with-zlib \
- \
-# https://github.com/docker-library/php/pull/1259
- --enable-phpdbg \
- --enable-phpdbg-readline \
- \
-# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
- --with-pear \
- \
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
- $(test "$gnuArch" = 'riscv64-linux-gnu' && echo '--without-pcre-jit') \
- --with-libdir="lib/$debMultiarch" \
- \
-# https://github.com/docker-library/php/pull/939#issuecomment-730501748
- --enable-embed \
- \
- --enable-zts \
-# https://externals.io/message/118859
- --disable-zend-signals \
- --enable-zend-max-execution-timers \
- ; \
- make -j "$(nproc)"; \
- find -type f -name '*.a' -delete; \
- make install; \
- find \
- /usr/local \
- -type f \
- -perm '/0111' \
- -exec sh -euxc ' \
- strip --strip-all "$@" || : \
- ' -- '{}' + \
- ; \
- make clean; \
- \
-# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable)
- cp -v php.ini-* "$PHP_INI_DIR/"; \
- \
- cd /; \
- docker-php-source delete; \
- \
-# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
- apt-mark auto '.*' > /dev/null; \
- [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
- find /usr/local -type f -executable -exec ldd '{}' ';' \
- | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \
- | sort -u \
- | xargs -rt dpkg-query --search \
-# https://manpages.debian.org/trixie/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file)
- | awk 'sub(":$", "", $1) { print $1 }' \
- | sort -u \
- | xargs -r apt-mark manual \
- ; \
- apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
- apt-get dist-clean; \
- \
-# update pecl channel definitions https://github.com/docker-library/php/issues/443
- pecl update-channels; \
- rm -rf /tmp/pear ~/.pearrc; \
- \
-# smoke test
- php --version
-
-COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
-
-# enable OPcache by default (https://wiki.php.net/rfc/make_opcache_required)
-RUN docker-php-ext-enable opcache
-
-# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598)
-RUN docker-php-ext-enable sodium
-
-ENTRYPOINT ["docker-php-entrypoint"]
-CMD ["php", "-a"]