-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Update phpmyadmin to latest upstream changes #14960
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This comment has been minimized.
This comment has been minimized.
+ | awk '{print $1} {system("realpath " $1)}' \Doing What I'd suggest instead is what I proposed in docker-library/python#822 (comment) (and what we used in the PHP image; https://github.com/docker-library/php/blob/0bae31aa4aa0afffdc394072bda779fa652f74fc/Dockerfile-linux.template#L425), which strips any possible | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ |
|
You might also enjoy https://github.com/docker-library/wordpress/blob/dd5c229a1900cab9543b180945b8a80754936eac/Dockerfile.template#L125-L128, but I feel a lot less strongly about that change - if you're happy with what you've got there, it's totally fine. 😄 |
|
Hi @ederuiter Thank you @tianon ! |
|
✅ I will have a look at it tomorrow |
This applies the fixes suggested in docker-library/official-images#14960
This comment has been minimized.
This comment has been minimized.
Diff for c32e5b5:diff --git a/_bashbrew-cat b/_bashbrew-cat
index 052f074..767f734 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -3,15 +3,15 @@ GitRepo: https://github.com/phpmyadmin/docker.git
Tags: 5.2.1-apache, 5.2-apache, 5-apache, apache, 5.2.1, 5.2, 5, latest
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
-GitCommit: 7f5a48b7c3ac2b820be1c0d4808f7277640a70b8
+GitCommit: da4b8f273a0a81078185076683ed92a382814ef3
Directory: apache
Tags: 5.2.1-fpm, 5.2-fpm, 5-fpm, fpm
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
-GitCommit: 7f5a48b7c3ac2b820be1c0d4808f7277640a70b8
+GitCommit: da4b8f273a0a81078185076683ed92a382814ef3
Directory: fpm
Tags: 5.2.1-fpm-alpine, 5.2-fpm-alpine, 5-fpm-alpine, fpm-alpine
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 7f5a48b7c3ac2b820be1c0d4808f7277640a70b8
+GitCommit: 8674356a6d0f67eb89d0200647832fc3853781fd
Directory: fpm-alpine
diff --git a/phpmyadmin_fpm-alpine/Dockerfile b/phpmyadmin_fpm-alpine/Dockerfile
index 129e0e7..60b095f 100644
--- a/phpmyadmin_fpm-alpine/Dockerfile
+++ b/phpmyadmin_fpm-alpine/Dockerfile
@@ -1,4 +1,5 @@
-FROM php:8.1-fpm-alpine
+# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template
+FROM php:8.2-fpm-alpine
# docker-entrypoint.sh dependencies
RUN apk add --no-cache \
@@ -25,6 +26,7 @@ RUN set -ex; \
mysqli \
opcache \
zip \
+ bcmath \
; \
\
runDeps="$( \
@@ -33,7 +35,7 @@ RUN set -ex; \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
- apk add --virtual .phpmyadmin-phpexts-rundeps $runDeps; \
+ apk add --no-network --virtual .phpmyadmin-phpexts-rundeps $runDeps; \
apk del --no-network .build-deps
# set recommended PHP.ini settings
@@ -42,6 +44,7 @@ ENV MAX_EXECUTION_TIME 600
ENV MEMORY_LIMIT 512M
ENV UPLOAD_LIMIT 2048K
ENV TZ UTC
+ENV SESSION_SAVE_PATH /sessions
RUN set -ex; \
\
{ \
@@ -65,6 +68,7 @@ RUN set -ex; \
echo 'post_max_size=${UPLOAD_LIMIT}'; \
echo 'upload_max_filesize=${UPLOAD_LIMIT}'; \
echo 'date.timezone=${TZ}'; \
+ echo 'session.save_path=${SESSION_SAVE_PATH}'; \
} > $PHP_INI_DIR/conf.d/phpmyadmin-misc.ini
# Calculate download URL
@@ -87,6 +91,9 @@ RUN set -ex; \
apk add --no-cache --virtual .fetch-deps \
gnupg \
; \
+ mkdir $SESSION_SAVE_PATH; \
+ chmod 1777 $SESSION_SAVE_PATH; \
+ chown www-data:www-data $SESSION_SAVE_PATH; \
\
export GNUPGHOME="$(mktemp -d)"; \
export GPGKEY="3D06A59ECE730EB71B511C17CE752F178259BD92"; \
diff --git a/phpmyadmin_fpm-alpine/config.inc.php b/phpmyadmin_fpm-alpine/config.inc.php
index 8055e5c..9a39134 100644
--- a/phpmyadmin_fpm-alpine/config.inc.php
+++ b/phpmyadmin_fpm-alpine/config.inc.php
@@ -159,3 +159,10 @@ if (isset($_ENV['MEMORY_LIMIT'])) {
if (file_exists('/etc/phpmyadmin/config.user.inc.php')) {
include '/etc/phpmyadmin/config.user.inc.php';
}
+
+/* Support additional configurations */
+if (is_dir('/etc/phpmyadmin/conf.d/')) {
+ foreach (glob('/etc/phpmyadmin/conf.d/*.php') as $filename) {
+ include $filename;
+ }
+}
diff --git a/phpmyadmin_fpm/Dockerfile b/phpmyadmin_fpm/Dockerfile
index f78c0ab..34e24d1 100644
--- a/phpmyadmin_fpm/Dockerfile
+++ b/phpmyadmin_fpm/Dockerfile
@@ -1,4 +1,5 @@
-FROM php:8.1-fpm
+# DO NOT EDIT: created by update.sh from Dockerfile-debian.template
+FROM php:8.2-fpm
# Install dependencies
RUN set -ex; \
@@ -23,12 +24,14 @@ RUN set -ex; \
mysqli \
opcache \
zip \
+ bcmath \
; \
\
apt-mark auto '.*' > /dev/null; \
apt-mark manual $savedAptMark; \
- ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
- | awk '/=>/ { print $3 }' \
+ extdir="$(php -r 'echo ini_get("extension_dir");')"; \
+ ldd "$extdir"/*.so \
+ | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \
| sort -u \
| xargs -r dpkg-query -S \
| cut -d: -f1 \
@@ -36,7 +39,11 @@ RUN set -ex; \
| xargs -rt apt-mark manual; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
- rm -rf /var/lib/apt/lists/*
+ 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); \
+ 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
@@ -44,6 +51,7 @@ ENV MAX_EXECUTION_TIME 600
ENV MEMORY_LIMIT 512M
ENV UPLOAD_LIMIT 2048K
ENV TZ UTC
+ENV SESSION_SAVE_PATH /sessions
RUN set -ex; \
\
{ \
@@ -67,6 +75,7 @@ RUN set -ex; \
echo 'post_max_size=${UPLOAD_LIMIT}'; \
echo 'upload_max_filesize=${UPLOAD_LIMIT}'; \
echo 'date.timezone=${TZ}'; \
+ echo 'session.save_path=${SESSION_SAVE_PATH}'; \
} > $PHP_INI_DIR/conf.d/phpmyadmin-misc.ini
# Calculate download URL
@@ -94,6 +103,9 @@ RUN set -ex; \
gnupg \
dirmngr \
; \
+ mkdir $SESSION_SAVE_PATH; \
+ chmod 1777 $SESSION_SAVE_PATH; \
+ chown www-data:www-data $SESSION_SAVE_PATH; \
\
export GNUPGHOME="$(mktemp -d)"; \
export GPGKEY="3D06A59ECE730EB71B511C17CE752F178259BD92"; \
diff --git a/phpmyadmin_fpm/config.inc.php b/phpmyadmin_fpm/config.inc.php
index 8055e5c..9a39134 100644
--- a/phpmyadmin_fpm/config.inc.php
+++ b/phpmyadmin_fpm/config.inc.php
@@ -159,3 +159,10 @@ if (isset($_ENV['MEMORY_LIMIT'])) {
if (file_exists('/etc/phpmyadmin/config.user.inc.php')) {
include '/etc/phpmyadmin/config.user.inc.php';
}
+
+/* Support additional configurations */
+if (is_dir('/etc/phpmyadmin/conf.d/')) {
+ foreach (glob('/etc/phpmyadmin/conf.d/*.php') as $filename) {
+ include $filename;
+ }
+}
diff --git a/phpmyadmin_latest/Dockerfile b/phpmyadmin_latest/Dockerfile
index 8ba144b..66a9262 100644
--- a/phpmyadmin_latest/Dockerfile
+++ b/phpmyadmin_latest/Dockerfile
@@ -1,4 +1,5 @@
-FROM php:8.1-apache
+# DO NOT EDIT: created by update.sh from Dockerfile-debian.template
+FROM php:8.2-apache
# Install dependencies
RUN set -ex; \
@@ -23,12 +24,14 @@ RUN set -ex; \
mysqli \
opcache \
zip \
+ bcmath \
; \
\
apt-mark auto '.*' > /dev/null; \
apt-mark manual $savedAptMark; \
- ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
- | awk '/=>/ { print $3 }' \
+ extdir="$(php -r 'echo ini_get("extension_dir");')"; \
+ ldd "$extdir"/*.so \
+ | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \
| sort -u \
| xargs -r dpkg-query -S \
| cut -d: -f1 \
@@ -36,7 +39,11 @@ RUN set -ex; \
| xargs -rt apt-mark manual; \
\
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
- rm -rf /var/lib/apt/lists/*
+ 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); \
+ 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
@@ -44,6 +51,7 @@ ENV MAX_EXECUTION_TIME 600
ENV MEMORY_LIMIT 512M
ENV UPLOAD_LIMIT 2048K
ENV TZ UTC
+ENV SESSION_SAVE_PATH /sessions
RUN set -ex; \
\
{ \
@@ -67,6 +75,7 @@ RUN set -ex; \
echo 'post_max_size=${UPLOAD_LIMIT}'; \
echo 'upload_max_filesize=${UPLOAD_LIMIT}'; \
echo 'date.timezone=${TZ}'; \
+ echo 'session.save_path=${SESSION_SAVE_PATH}'; \
} > $PHP_INI_DIR/conf.d/phpmyadmin-misc.ini
# Calculate download URL
@@ -94,6 +103,9 @@ RUN set -ex; \
gnupg \
dirmngr \
; \
+ mkdir $SESSION_SAVE_PATH; \
+ chmod 1777 $SESSION_SAVE_PATH; \
+ chown www-data:www-data $SESSION_SAVE_PATH; \
\
export GNUPGHOME="$(mktemp -d)"; \
export GPGKEY="3D06A59ECE730EB71B511C17CE752F178259BD92"; \
diff --git a/phpmyadmin_latest/config.inc.php b/phpmyadmin_latest/config.inc.php
index 8055e5c..9a39134 100644
--- a/phpmyadmin_latest/config.inc.php
+++ b/phpmyadmin_latest/config.inc.php
@@ -159,3 +159,10 @@ if (isset($_ENV['MEMORY_LIMIT'])) {
if (file_exists('/etc/phpmyadmin/config.user.inc.php')) {
include '/etc/phpmyadmin/config.user.inc.php';
}
+
+/* Support additional configurations */
+if (is_dir('/etc/phpmyadmin/conf.d/')) {
+ foreach (glob('/etc/phpmyadmin/conf.d/*.php') as $filename) {
+ include $filename;
+ }
+}Relevant Maintainers:
|
|
Nice, thanks for updating! |
Fixes: phpmyadmin/docker#416