From da4b8f273a0a81078185076683ed92a382814ef3 Mon Sep 17 00:00:00 2001 From: Eric de Ruiter Date: Tue, 4 Jul 2023 14:39:51 +0200 Subject: [PATCH] Better fix for #416 This applies the fixes suggested in https://github.com/docker-library/official-images/pull/14960 --- Dockerfile-debian.template | 7 ++++--- apache/Dockerfile | 7 ++++--- fpm/Dockerfile | 7 ++++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Dockerfile-debian.template b/Dockerfile-debian.template index 626f8d7..c85bf09 100644 --- a/Dockerfile-debian.template +++ b/Dockerfile-debian.template @@ -30,8 +30,7 @@ RUN set -ex; \ apt-mark manual $savedAptMark; \ extdir="$(php -r 'echo ini_get("extension_dir");')"; \ ldd "$extdir"/*.so \ - | awk '/=>/ { print $3 }' \ - | awk '{print $1} {system("realpath " $1)}' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ @@ -41,7 +40,9 @@ RUN set -ex; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ rm -rf /var/lib/apt/lists/*; \ ldd "$extdir"/*.so | grep -qzv "=> not found" || (echo "Sanity check failed: missing libraries:"; ldd "$extdir"/*.so | grep " => not found"; exit 1); \ - ldd "$extdir"/*.so | grep -q "libzip.so.* => .*/libzip.so.*" || (echo "Sanity check failed: libzip.so is not referenced"; ldd "$extdir"/*.so; exit 1); + ldd "$extdir"/*.so | grep -q "libzip.so.* => .*/libzip.so.*" || (echo "Sanity check failed: libzip.so is not referenced"; ldd "$extdir"/*.so; exit 1); \ + err="$(php --version 3>&1 1>&2 2>&3)"; \ + [ -z "$err" ] || (echo "Sanity check failed: php returned errors; $err"; exit 1;); # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php diff --git a/apache/Dockerfile b/apache/Dockerfile index 7ce18f7..66a9262 100644 --- a/apache/Dockerfile +++ b/apache/Dockerfile @@ -31,8 +31,7 @@ RUN set -ex; \ apt-mark manual $savedAptMark; \ extdir="$(php -r 'echo ini_get("extension_dir");')"; \ ldd "$extdir"/*.so \ - | awk '/=>/ { print $3 }' \ - | awk '{print $1} {system("realpath " $1)}' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ @@ -42,7 +41,9 @@ RUN set -ex; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ rm -rf /var/lib/apt/lists/*; \ ldd "$extdir"/*.so | grep -qzv "=> not found" || (echo "Sanity check failed: missing libraries:"; ldd "$extdir"/*.so | grep " => not found"; exit 1); \ - ldd "$extdir"/*.so | grep -q "libzip.so.* => .*/libzip.so.*" || (echo "Sanity check failed: libzip.so is not referenced"; ldd "$extdir"/*.so; exit 1); + ldd "$extdir"/*.so | grep -q "libzip.so.* => .*/libzip.so.*" || (echo "Sanity check failed: libzip.so is not referenced"; ldd "$extdir"/*.so; exit 1); \ + err="$(php --version 3>&1 1>&2 2>&3)"; \ + [ -z "$err" ] || (echo "Sanity check failed: php returned errors; $err"; exit 1;); # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php diff --git a/fpm/Dockerfile b/fpm/Dockerfile index 103d9fd..34e24d1 100644 --- a/fpm/Dockerfile +++ b/fpm/Dockerfile @@ -31,8 +31,7 @@ RUN set -ex; \ apt-mark manual $savedAptMark; \ extdir="$(php -r 'echo ini_get("extension_dir");')"; \ ldd "$extdir"/*.so \ - | awk '/=>/ { print $3 }' \ - | awk '{print $1} {system("realpath " $1)}' \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ | sort -u \ | xargs -r dpkg-query -S \ | cut -d: -f1 \ @@ -42,7 +41,9 @@ RUN set -ex; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ rm -rf /var/lib/apt/lists/*; \ ldd "$extdir"/*.so | grep -qzv "=> not found" || (echo "Sanity check failed: missing libraries:"; ldd "$extdir"/*.so | grep " => not found"; exit 1); \ - ldd "$extdir"/*.so | grep -q "libzip.so.* => .*/libzip.so.*" || (echo "Sanity check failed: libzip.so is not referenced"; ldd "$extdir"/*.so; exit 1); + ldd "$extdir"/*.so | grep -q "libzip.so.* => .*/libzip.so.*" || (echo "Sanity check failed: libzip.so is not referenced"; ldd "$extdir"/*.so; exit 1); \ + err="$(php --version 3>&1 1>&2 2>&3)"; \ + [ -z "$err" ] || (echo "Sanity check failed: php returned errors; $err"; exit 1;); # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php