From a483e7316eb135c49bf14a95a7f6f25515fdc5c6 Mon Sep 17 00:00:00 2001 From: ma-04 <120931948+ma-04@users.noreply.github.com> Date: Thu, 1 Oct 2026 11:39:29 +0600 Subject: [PATCH 1/2] fix: install relay after imagick and skip its load check on arm64 Relay's arm64 build cannot start under QEMU user-mode emulation, which CI uses for linux/arm64. Since August every scheduled build failed at the install-php-extensions relay load check. Relay loads fine on native arm64. Install relay in its own step after imagick, so no later build step runs php with relay enabled, and skip the load check on aarch64 only. --- php/Dockerfile | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/php/Dockerfile b/php/Dockerfile index ad37792..b4d498e 100644 --- a/php/Dockerfile +++ b/php/Dockerfile @@ -51,7 +51,7 @@ RUN apk add --no-cache ca-certificates wget gnupg && \ RUN apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS \ && curl -L -o /usr/local/bin/install-php-extensions https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions \ && chmod +x /usr/local/bin/install-php-extensions \ - && install-php-extensions bcmath curl dom exif fileinfo gd hash igbinary intl json mbstring mysqli opcache openssl pcre pdo_mysql pdo_sqlite redis shmop simplexml sodium soap sockets ssh2 tokenizer xml xmlreader xmlwriter zip zlib apcu ftp relay pspell pcntl mongodb ldap imap gmp gettext excimer ev calendar xsl sqlsrv pdo_sqlsrv pdo_pgsql + && install-php-extensions bcmath curl dom exif fileinfo gd hash igbinary intl json mbstring mysqli opcache openssl pcre pdo_mysql pdo_sqlite redis shmop simplexml sodium soap sockets ssh2 tokenizer xml xmlreader xmlwriter zip zlib apcu ftp pspell pcntl mongodb ldap imap gmp gettext excimer ev calendar xsl sqlsrv pdo_sqlsrv pdo_pgsql # Install imagick manually for PHP 8.3 RUN if [[ "$PHP_VERSION" == "8.3"* ]]; then \ @@ -66,6 +66,16 @@ RUN if [[ "$PHP_VERSION" == "8.3"* ]]; then \ install-php-extensions imagick; \ fi +# Install relay last: once enabled, its arm64 build fails to start under QEMU +# user-mode emulation (used for linux/arm64 in CI), which kills every later +# `php` invocation, including install-php-extensions' load check. It works on +# native arm64, so only skip the check there. +RUN if [ "$(uname -m)" = "aarch64" ]; then \ + IPE_SKIP_CHECK=1 install-php-extensions relay; \ + else \ + install-php-extensions relay; \ + fi + # Clean up build dependencies RUN apk del .build-deps .phpize-deps \ && rm -rf /tmp/* /var/cache/apk/* From 9b8745686789bc236af2eb15ec19628a4727bd7f Mon Sep 17 00:00:00 2001 From: ma-04 <120931948+ma-04@users.noreply.github.com> Date: Thu, 1 Oct 2026 16:46:28 +0600 Subject: [PATCH 2/2] chore: shorten relay comment --- php/Dockerfile | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/php/Dockerfile b/php/Dockerfile index b4d498e..7de9c87 100644 --- a/php/Dockerfile +++ b/php/Dockerfile @@ -66,10 +66,7 @@ RUN if [[ "$PHP_VERSION" == "8.3"* ]]; then \ install-php-extensions imagick; \ fi -# Install relay last: once enabled, its arm64 build fails to start under QEMU -# user-mode emulation (used for linux/arm64 in CI), which kills every later -# `php` invocation, including install-php-extensions' load check. It works on -# native arm64, so only skip the check there. +# Install relay last; it can't load under QEMU arm64 emulation, so skip its check there RUN if [ "$(uname -m)" = "aarch64" ]; then \ IPE_SKIP_CHECK=1 install-php-extensions relay; \ else \