1- FROM alpine:3.21.0 AS alpine-distro
1+ FROM alpine:3.23 AS alpine-distro
22FROM alpine-distro AS php-zts-builder
33
44RUN apk add --no-cache libc6-compat
@@ -21,22 +21,22 @@ RUN cp /workspace/.abuild/*.rsa.pub /etc/apk/keys/
2121USER alpiner
2222
2323
24- RUN git clone -b 3.21 -stable --single-branch --depth=1 https://gitlab.alpinelinux.org/alpine/aports
24+ RUN git clone -b 3.23 -stable --single-branch --depth=1 https://gitlab.alpinelinux.org/alpine/aports
2525
26- WORKDIR /workspace/aports/community/php84
27- RUN cp -rf /workspace/aports/community/php84 /workspace/aports/community/phpzts84
28- WORKDIR /workspace/aports/community/phpzts84
29- RUN sed -i -e 's/pkgname=php84 /pkgname=phpzts84 /' APKBUILD
26+ WORKDIR /workspace/aports/community/php85
27+ RUN cp -rf /workspace/aports/community/php85 /workspace/aports/community/phpzts85
28+ WORKDIR /workspace/aports/community/phpzts85
29+ RUN sed -i -e 's/pkgname=php85 /pkgname=phpzts85 /' APKBUILD
3030# hadolint ignore=SC2016
31- RUN sed -i -e 's/\$ pkgname-fpm.initd/php84 -fpm.initd/' APKBUILD
31+ RUN sed -i -e 's/\$ pkgname-fpm.initd/php85 -fpm.initd/' APKBUILD
3232# hadolint ignore=SC2016
33- RUN sed -i -e 's/\$ pkgname-fpm.logrotate/php84 -fpm.logrotate/' APKBUILD
33+ RUN sed -i -e 's/\$ pkgname-fpm.logrotate/php85 -fpm.logrotate/' APKBUILD
3434# hadolint ignore=SC2016
35- RUN sed -i -e 's/\$ pkgname-module.conf/php84 -module.conf/' APKBUILD
35+ RUN sed -i -e 's/\$ pkgname-module.conf/php85 -module.conf/' APKBUILD
3636# hadolint ignore=SC2016
37- RUN sed -i -e 's/\$ pkgname-fpm-version-suffix.patch/php84 -fpm-version-suffix.patch/' APKBUILD
37+ RUN sed -i -e 's/\$ pkgname-fpm-version-suffix.patch/php85 -fpm-version-suffix.patch/' APKBUILD
3838# hadolint ignore=SC2016
39- RUN sed -i -e 's/php\$ _suffix-module.conf/php84 -module.conf/' APKBUILD
39+ RUN sed -i -e 's/php\$ _suffix-module.conf/php85 -module.conf/' APKBUILD
4040RUN sed -i -e 's/--host/--enable-zts --enable-zend-max-execution-timers --enable-zend-timer --disable-zend-signals --host/' APKBUILD
4141RUN sed -i -e 's/--with-openssl-argon2//' APKBUILD
4242# RUN sed -i -e 's/--with-password-argon2//' APKBUILD
@@ -64,13 +64,11 @@ RUN arch
6464RUN uname -m
6565RUN abuild -A
6666RUN abuild checksum && abuild -r
67- WORKDIR /workspace/aports/community/unit
68- # make phpver3 to be phpzts84
69- RUN sed -i -e 's/_phpver4=84/_phpver4=zts84/' APKBUILD
70- RUN sed -i -e 's/.\/ configure php --module=php\$ _phpver2 --config=php-config\$ _phpver2//' APKBUILD
71- RUN sed -i -e 's/.\/ configure php --module=php\$ _phpver3 --config=php-config\$ _phpver3//' APKBUILD
72- RUN sed -i -e 's/perl php\$ _phpver2 php\$ _phpver3 php\$ _phpver4/perl php\$ _phpver4 /' APKBUILD
73- # make unit-php84 find the lphpzts84.so
67+ WORKDIR /workspace/aports/community/unit-php85
68+ # rename package and change PHP version for ZTS build
69+ RUN sed -i -e 's/pkgname=unit-php85/pkgname=unit-phpzts85/' APKBUILD
70+ RUN sed -i -e 's/_phpver=85/_phpver=zts85/' APKBUILD
71+ # make unit-php85 find the lphpzts85.so
7472# hadolint ignore=SC2016
7573# RUN sed -i -e 's/.\/configure php --module=php\$_phpver4/sed -i -e "s\/lphp\/lphpzts\/g" auto\/modules\/php \&\& cat auto\/modules\/php \&\& .\/configure php --module=php\$_phpver4/g' APKBUILD
7674RUN sed -i -e 's/_allow_fail=no/_allow_fail=yes/g' APKBUILD
@@ -79,10 +77,10 @@ RUN abuild checksum && abuild -r
7977
8078FROM alpine-distro AS php-zts-base
8179
82- ARG PHP_VERSION="8.4.4 "
83- ARG PHP_PACKAGE_BASENAME="phpzts84 "
84- ARG PHP_PACKAGE_INCLUDE="/usr/include/php84 "
85- ARG PHP_FPM_BINARY_PATH="/usr/sbin/php-fpmzts84 "
80+ ARG PHP_VERSION="8.5.1 "
81+ ARG PHP_PACKAGE_BASENAME="phpzts85 "
82+ ARG PHP_PACKAGE_INCLUDE="/usr/include/php85 "
83+ ARG PHP_FPM_BINARY_PATH="/usr/sbin/php-fpmzts85 "
8684ENV PHP_VERSION=$PHP_VERSION
8785ENV PHP_PACKAGE_BASENAME=$PHP_PACKAGE_BASENAME
8886ENV PHP_PACKAGE_INCLUDE=$PHP_PACKAGE_INCLUDE
@@ -142,7 +140,7 @@ RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-intl
142140RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-ldap
143141RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-mbstring
144142RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-mysqli
145- RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-opcache
143+ # NOTE: opcache is now built into phpzts85 core, no separate package needed
146144RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-openssl
147145RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-pcntl
148146RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-pdo_mysql
@@ -153,24 +151,24 @@ RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-tokenizer
153151RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-session
154152RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-sockets
155153
156- # FIXME: we need this, since phpzts84 is not the _default_php in https://git.alpinelinux.org/aports/tree/community/php84 /APKBUILD
154+ # FIXME: we need this, since phpzts85 is not the _default_php in https://git.alpinelinux.org/aports/tree/community/php85 /APKBUILD
157155WORKDIR /usr/bin
158- RUN ln -s phpzts84 php \
159- && ln -s peardevzts84 peardev \
160- && ln -s peclzts84 pecl \
161- && ln -s phpizezts84 phpize \
162- && ln -s php-configzts84 php-config \
163- && ln -s phpdbgzts84 phpdbg \
164- && ln -s lsphpzts84 lsphp \
165- && ln -s php-cgizts84 php-cgi \
166- && ln -s phar.pharzts84 phar.phar \
167- && ln -s pharzts84 phar
156+ RUN ln -s phpzts85 php \
157+ && ln -s peardevzts85 peardev \
158+ && ln -s peclzts85 pecl \
159+ && ln -s phpizezts85 phpize \
160+ && ln -s php-configzts85 php-config \
161+ && ln -s phpdbgzts85 phpdbg \
162+ && ln -s lsphpzts85 lsphp \
163+ && ln -s php-cgizts85 php-cgi \
164+ && ln -s phar.pharzts85 phar.phar \
165+ && ln -s pharzts85 phar
168166
169167FROM php-zts-base AS PECL-BUILDER-AMQP
170168
171169# FIXME: RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-pecl-amqp
172170RUN apk add --no-cache binutils build-base openssl-dev autoconf pcre2-dev automake libtool linux-headers rabbitmq-c-dev ${PHP_PACKAGE_BASENAME}-dev~=${PHP_VERSION} --virtual .build-deps \
173- && MAKEFLAGS="-j $(nproc)" peclzts84 install amqp \
171+ && MAKEFLAGS="-j $(nproc)" peclzts85 install amqp \
174172 && strip --strip-all /usr/lib/$PHP_PACKAGE_BASENAME/modules/amqp.so \
175173 && echo "extension=amqp" > /etc/$PHP_PACKAGE_BASENAME/conf.d/40_amqp.ini \
176174 && apk del --no-network .build-deps \
@@ -180,7 +178,7 @@ FROM php-zts-base AS PECL-BUILDER-APCU
180178
181179# FIXME: RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-pecl-apcu
182180RUN apk add --no-cache binutils build-base openssl-dev autoconf pcre2-dev automake libtool linux-headers ${PHP_PACKAGE_BASENAME}-dev~=${PHP_VERSION} --virtual .build-deps \
183- && MAKEFLAGS="-j $(nproc)" peclzts84 install apcu \
181+ && MAKEFLAGS="-j $(nproc)" peclzts85 install apcu \
184182 && strip --strip-all /usr/lib/$PHP_PACKAGE_BASENAME/modules/apcu.so \
185183 && echo "extension=apcu" > /etc/$PHP_PACKAGE_BASENAME/conf.d/apcu.ini \
186184 && apk del --no-network .build-deps
@@ -189,7 +187,7 @@ FROM php-zts-base AS PECL-BUILDER-IGBINARY
189187
190188# FIXME: RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-pecl-igbinary
191189RUN apk add --no-cache binutils build-base openssl-dev autoconf pcre2-dev automake libtool linux-headers ${PHP_PACKAGE_BASENAME}-dev~=${PHP_VERSION} --virtual .build-deps \
192- && MAKEFLAGS="-j $(nproc)" peclzts84 install igbinary \
190+ && MAKEFLAGS="-j $(nproc)" peclzts85 install igbinary \
193191 && strip --strip-all /usr/lib/$PHP_PACKAGE_BASENAME/modules/igbinary.so \
194192 && echo "extension=igbinary" > /etc/$PHP_PACKAGE_BASENAME/conf.d/10_igbinary.ini \
195193 && apk del --no-network .build-deps
@@ -199,10 +197,9 @@ FROM php-zts-base AS PECL-BUILDER-IMAGICK
199197# FIXME: RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-pecl-imagick
200198# FIXME: we do this because of https://github.com/Imagick/imagick/issues/689
201199RUN apk add --no-cache binutils build-base openssl-dev autoconf pcre2-dev automake libtool linux-headers imagemagick imagemagick-dev imagemagick-libs ${PHP_PACKAGE_BASENAME}-dev~=${PHP_VERSION} --virtual .build-deps \
202- && wget --quiet --no-verbose https://github.com/Imagick/imagick/archive/refs/heads /3.7.0 .tar.gz -O /tmp/imagick.tar.gz \
200+ && wget --quiet --no-verbose https://github.com/Imagick/imagick/archive/refs/tags /3.8.1 .tar.gz -O /tmp/imagick.tar.gz \
203201 && tar --strip-components=1 -xf /tmp/imagick.tar.gz \
204- && sed -i -e 's/php_strtolower/zend_str_tolower/' imagick.c \
205- && phpizezts84 \
202+ && phpizezts85 \
206203 && ./configure \
207204 && MAKEFLAGS="-j $(nproc)" make \
208205 && MAKEFLAGS="-j $(nproc)" make install \
@@ -216,7 +213,7 @@ FROM php-zts-base AS PECL-BUILDER-MSGPACK
216213
217214# FIXME: RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-pecl-msgpack
218215RUN apk add --no-cache binutils build-base openssl-dev autoconf pcre2-dev automake libtool linux-headers ${PHP_PACKAGE_BASENAME}-dev~=${PHP_VERSION} --virtual .build-deps \
219- && MAKEFLAGS="-j $(nproc)" peclzts84 install msgpack \
216+ && MAKEFLAGS="-j $(nproc)" peclzts85 install msgpack \
220217 && strip --strip-all /usr/lib/$PHP_PACKAGE_BASENAME/modules/msgpack.so \
221218 && echo "extension=msgpack" > /etc/$PHP_PACKAGE_BASENAME/conf.d/10_msgpack.ini \
222219 && apk del --no-network .build-deps
@@ -231,7 +228,7 @@ COPY --from=PECL-BUILDER-MSGPACK /etc/$PHP_PACKAGE_BASENAME/conf.d/10_msgpack.in
231228COPY --from=PECL-BUILDER-MSGPACK $PHP_PACKAGE_INCLUDE/ext/msgpack $PHP_PACKAGE_INCLUDE/ext/msgpack
232229# FIXME: RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-pecl-memcached
233230RUN apk add --no-cache binutils build-base openssl-dev autoconf pcre2-dev automake libtool linux-headers zlib-dev libmemcached-dev cyrus-sasl-dev libevent-dev ${PHP_PACKAGE_BASENAME}-dev~=${PHP_VERSION} --virtual .build-deps \
234- && MAKEFLAGS="-j $(nproc)" peclzts84 install -D 'enable-memcached-igbinary="yes" enable-memcached-session="yes" enable-memcached-json="yes" enable-memcached-protocol="yes" enable-memcached-msgpack="yes"' memcached \
231+ && MAKEFLAGS="-j $(nproc)" peclzts85 install -D 'enable-memcached-igbinary="yes" enable-memcached-session="yes" enable-memcached-json="yes" enable-memcached-protocol="yes" enable-memcached-msgpack="yes"' memcached \
235232 && strip --strip-all /usr/lib/$PHP_PACKAGE_BASENAME/modules/memcached.so \
236233 && echo "extension=memcached" > /etc/$PHP_PACKAGE_BASENAME/conf.d/20_memcached.ini \
237234 && apk del --no-network .build-deps \
@@ -241,7 +238,7 @@ FROM php-zts-base AS PECL-BUILDER-PROTOBUF
241238
242239# FIXME: RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-pecl-protobuf
243240RUN apk add --no-cache binutils build-base openssl-dev autoconf pcre2-dev automake libtool linux-headers ${PHP_PACKAGE_BASENAME}-dev~=${PHP_VERSION} --virtual .build-deps \
244- && MAKEFLAGS="-j $(nproc)" peclzts84 install protobuf \
241+ && MAKEFLAGS="-j $(nproc)" peclzts85 install protobuf \
245242 && strip --strip-all /usr/lib/$PHP_PACKAGE_BASENAME/modules/protobuf.so \
246243 && echo "extension=protobuf" > /etc/$PHP_PACKAGE_BASENAME/conf.d/protobuf.ini \
247244 && apk del --no-network .build-deps
@@ -253,7 +250,7 @@ COPY --from=PECL-BUILDER-IGBINARY /etc/$PHP_PACKAGE_BASENAME/conf.d/10_igbinary.
253250COPY --from=PECL-BUILDER-IGBINARY $PHP_PACKAGE_INCLUDE/ext/igbinary $PHP_PACKAGE_INCLUDE/ext/igbinary
254251# FIXME: RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-redis
255252RUN apk add --no-cache binutils build-base openssl-dev autoconf pcre2-dev automake libtool linux-headers lz4-dev zstd-dev ${PHP_PACKAGE_BASENAME}-dev~=${PHP_VERSION} --virtual .build-deps \
256- && MAKEFLAGS="-j $(nproc)" peclzts84 install -D 'enable-redis-igbinary="yes" enable-redis-lz4="yes" with-liblz4="yes" enable-redis-lzf="yes" enable-redis-zstd="yes"' redis \
253+ && MAKEFLAGS="-j $(nproc)" peclzts85 install -D 'enable-redis-igbinary="yes" enable-redis-lz4="yes" with-liblz4="yes" enable-redis-lzf="yes" enable-redis-zstd="yes"' redis \
257254 && strip --strip-all /usr/lib/$PHP_PACKAGE_BASENAME/modules/redis.so \
258255 && echo "extension=redis" > /etc/$PHP_PACKAGE_BASENAME/conf.d/20_redis.ini \
259256 && apk del --no-network .build-deps
@@ -262,7 +259,7 @@ FROM php-zts-base AS PECL-BUILDER-XDEBUG
262259
263260# FIXME: RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-xdebug
264261RUN apk add --no-cache binutils build-base openssl-dev autoconf pcre2-dev automake libtool linux-headers ${PHP_PACKAGE_BASENAME}-dev~=${PHP_VERSION} --virtual .build-deps \
265- && MAKEFLAGS="-j $(nproc)" peclzts84 install xdebug \
262+ && MAKEFLAGS="-j $(nproc)" peclzts85 install xdebug \
266263 && strip --strip-all /usr/lib/$PHP_PACKAGE_BASENAME/modules/xdebug.so \
267264 && echo ";zend_extension=xdebug.so" > /etc/$PHP_PACKAGE_BASENAME/conf.d/50_xdebug.ini \
268265 && echo ";xdebug.mode=off" >> /etc/$PHP_PACKAGE_BASENAME/conf.d/50_xdebug.ini \
@@ -273,7 +270,7 @@ FROM php-zts-base AS PECL-BUILDER-GRPC
273270
274271# FIXME: RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-pecl-grpc~=$GRPC_EXTENSION_VERSION --repository $GRPC_EXTENSION_REPOSITORY
275272RUN apk add --no-cache binutils build-base openssl-dev autoconf pcre2-dev automake libtool linux-headers ${PHP_PACKAGE_BASENAME}-dev~=${PHP_VERSION} --virtual .build-deps \
276- && MAKEFLAGS="-j $(nproc)" peclzts84 install grpc \
273+ && MAKEFLAGS="-j $(nproc)" peclzts85 install grpc-1.78.0RC2 \
277274 && strip --strip-all /usr/lib/$PHP_PACKAGE_BASENAME/modules/grpc.so \
278275 && echo "extension=grpc" > /etc/$PHP_PACKAGE_BASENAME/conf.d/grpc.ini \
279276 && apk del --no-network .build-deps
@@ -282,7 +279,7 @@ FROM php-zts-base AS PECL-BUILDER-PCOV
282279
283280# FIXME: RUN apk add --no-cache ${PHP_PACKAGE_BASENAME}-pecl-pcov~=$PCOV_EXTENSION_VERSION --repository $PCOV_EXTENSION_REPOSITORY
284281RUN apk add --no-cache binutils build-base openssl-dev autoconf pcre2-dev automake libtool linux-headers ${PHP_PACKAGE_BASENAME}-dev~=${PHP_VERSION} --virtual .build-deps \
285- && MAKEFLAGS="-j $(nproc)" peclzts84 install pcov \
282+ && MAKEFLAGS="-j $(nproc)" peclzts85 install pcov \
286283 && strip --strip-all /usr/lib/$PHP_PACKAGE_BASENAME/modules/pcov.so \
287284 && echo "extension=pcov" > /etc/$PHP_PACKAGE_BASENAME/conf.d/pcov.ini \
288285 && apk del --no-network .build-deps
@@ -302,13 +299,13 @@ RUN apk add --no-cache binutils build-base libstdc++ cmake automake libtool linu
302299
303300# install caddy with frankenphp
304301# hadolint ignore=SC2016,SC2086,DL3003
305- RUN apk add --no-cache go~=1.23 --virtual .go-build-deps \
302+ RUN apk add --no-cache go~=1.25 --virtual .go-build-deps \
306303 && apk add --no-cache libxml2-dev sqlite-dev argon2-dev brotli-dev build-base openssl-dev ${PHP_PACKAGE_BASENAME}-dev~=${PHP_VERSION} --virtual .build-deps \
307304 && cd /opt \
308305 && find / | grep php | grep .so \
309- && git clone https://github.com/dunglas /frankenphp.git --recursive --branch v1.4.0 --single-branch \
306+ && git clone https://github.com/php /frankenphp.git --recursive --branch v1.11.1 --single-branch \
310307 && cd /opt/frankenphp/caddy/frankenphp \
311- && export PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 `php-config --includes`" \
308+ && export PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wno-error=attributes `php-config --includes`" \
312309 && export PHP_CPPFLAGS="$PHP_CFLAGS" \
313310 && export PHP_LDFLAGS="-Wl,-O1 -pie `php-config --ldflags` `php-config --libs` -Wl,-rpath,/usr/lib/${PHP_PACKAGE_BASENAME} -L/usr/lib/${PHP_PACKAGE_BASENAME}" \
314311 && export CGO_LDFLAGS="$PHP_LDFLAGS" CGO_CFLAGS=$PHP_CFLAGS CGO_CPPFLAGS=$PHP_CPPFLAGS \
@@ -418,8 +415,8 @@ RUN chown www-data:www-data /run/unit/
418415RUN apk add --no-cache apache2 ${PHP_PACKAGE_BASENAME}-apache2~=${PHP_VERSION}
419416# add default apache2 config file
420417COPY files/apache2/apache2-default.conf /etc/apache2/conf.d/00_apache2-default.conf
421- # fix that the mod_php84 .so is not properly renamed in the conf
422- RUN sed -i -e 's/mod_php84/mod_phpzts84 /g' /etc/apache2/conf.d/php84 -module.conf
418+ # fix that the mod_php85 .so is not properly renamed in the conf
419+ RUN sed -i -e 's/mod_php85/mod_phpzts85 /g' /etc/apache2/conf.d/php85 -module.conf
423420# activate rewrite module
424421RUN sed -i -e 's/#LoadModule rewrite_module/LoadModule rewrite_module/g' /etc/apache2/httpd.conf
425422# listen port 8080
0 commit comments