Skip to content

Commit d455a71

Browse files
committed
Merge #399 - Add back a /sessions volume for sessions persistence
2 parents 948bf2d + bb70a46 commit d455a71

File tree

8 files changed

+37
-2
lines changed

8 files changed

+37
-2
lines changed

CHANGELOG.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
77
## [Unreleased] - YYYY-MM-DD
88

99
- Add `TZ` env var to change PHP `date.timezone` (#133)
10-
- Update to PHP 8.2
10+
- Update to PHP 8.2 (#411)
11+
- Add back a `/sessions` volume for sessions persistence (#399)
1112

1213
## [5.2.1] - 2023-02-08
1314

Dockerfile-alpine.template

+5
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ ENV MAX_EXECUTION_TIME 600
4242
ENV MEMORY_LIMIT 512M
4343
ENV UPLOAD_LIMIT 2048K
4444
ENV TZ UTC
45+
ENV SESSION_SAVE_PATH /sessions
4546
RUN set -ex; \
4647
\
4748
{ \
@@ -65,6 +66,7 @@ RUN set -ex; \
6566
echo 'post_max_size=${UPLOAD_LIMIT}'; \
6667
echo 'upload_max_filesize=${UPLOAD_LIMIT}'; \
6768
echo 'date.timezone=${TZ}'; \
69+
echo 'session.save_path=${SESSION_SAVE_PATH}'; \
6870
} > $PHP_INI_DIR/conf.d/phpmyadmin-misc.ini
6971

7072
# Calculate download URL
@@ -87,6 +89,9 @@ RUN set -ex; \
8789
apk add --no-cache --virtual .fetch-deps \
8890
gnupg \
8991
; \
92+
mkdir $SESSION_SAVE_PATH; \
93+
chmod 1777 $SESSION_SAVE_PATH; \
94+
chown www-data:www-data $SESSION_SAVE_PATH; \
9095
\
9196
export GNUPGHOME="$(mktemp -d)"; \
9297
export GPGKEY="3D06A59ECE730EB71B511C17CE752F178259BD92"; \

Dockerfile-debian.template

+5
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ ENV MAX_EXECUTION_TIME 600
4444
ENV MEMORY_LIMIT 512M
4545
ENV UPLOAD_LIMIT 2048K
4646
ENV TZ UTC
47+
ENV SESSION_SAVE_PATH /sessions
4748
RUN set -ex; \
4849
\
4950
{ \
@@ -67,6 +68,7 @@ RUN set -ex; \
6768
echo 'post_max_size=${UPLOAD_LIMIT}'; \
6869
echo 'upload_max_filesize=${UPLOAD_LIMIT}'; \
6970
echo 'date.timezone=${TZ}'; \
71+
echo 'session.save_path=${SESSION_SAVE_PATH}'; \
7072
} > $PHP_INI_DIR/conf.d/phpmyadmin-misc.ini
7173

7274
# Calculate download URL
@@ -94,6 +96,9 @@ RUN set -ex; \
9496
gnupg \
9597
dirmngr \
9698
; \
99+
mkdir $SESSION_SAVE_PATH; \
100+
chmod 1777 $SESSION_SAVE_PATH; \
101+
chown www-data:www-data $SESSION_SAVE_PATH; \
97102
\
98103
export GNUPGHOME="$(mktemp -d)"; \
99104
export GPGKEY="3D06A59ECE730EB71B511C17CE752F178259BD92"; \

README.md

+8
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,14 @@ See the following links for config file information:
140140

141141
Set the variable ``PMA_ABSOLUTE_URI`` to the fully-qualified path (``https://pma.example.net/``) where the reverse proxy makes phpMyAdmin available.
142142

143+
## Sessions persistence
144+
145+
In order to keep your sessions active between container updates you will need to mount the `/sessions` folder.
146+
147+
```sh
148+
-v /some/local/directory/sessions:/sessions:rw
149+
```
150+
143151
## Environment variables summary
144152

145153
* ``PMA_ARBITRARY`` - when set to 1 connection to the arbitrary server will be allowed

apache/Dockerfile

+5
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ ENV MAX_EXECUTION_TIME 600
4444
ENV MEMORY_LIMIT 512M
4545
ENV UPLOAD_LIMIT 2048K
4646
ENV TZ UTC
47+
ENV SESSION_SAVE_PATH /sessions
4748
RUN set -ex; \
4849
\
4950
{ \
@@ -67,6 +68,7 @@ RUN set -ex; \
6768
echo 'post_max_size=${UPLOAD_LIMIT}'; \
6869
echo 'upload_max_filesize=${UPLOAD_LIMIT}'; \
6970
echo 'date.timezone=${TZ}'; \
71+
echo 'session.save_path=${SESSION_SAVE_PATH}'; \
7072
} > $PHP_INI_DIR/conf.d/phpmyadmin-misc.ini
7173

7274
# Calculate download URL
@@ -94,6 +96,9 @@ RUN set -ex; \
9496
gnupg \
9597
dirmngr \
9698
; \
99+
mkdir $SESSION_SAVE_PATH; \
100+
chmod 1777 $SESSION_SAVE_PATH; \
101+
chown www-data:www-data $SESSION_SAVE_PATH; \
97102
\
98103
export GNUPGHOME="$(mktemp -d)"; \
99104
export GPGKEY="3D06A59ECE730EB71B511C17CE752F178259BD92"; \

fpm-alpine/Dockerfile

+5
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ ENV MAX_EXECUTION_TIME 600
4242
ENV MEMORY_LIMIT 512M
4343
ENV UPLOAD_LIMIT 2048K
4444
ENV TZ UTC
45+
ENV SESSION_SAVE_PATH /sessions
4546
RUN set -ex; \
4647
\
4748
{ \
@@ -65,6 +66,7 @@ RUN set -ex; \
6566
echo 'post_max_size=${UPLOAD_LIMIT}'; \
6667
echo 'upload_max_filesize=${UPLOAD_LIMIT}'; \
6768
echo 'date.timezone=${TZ}'; \
69+
echo 'session.save_path=${SESSION_SAVE_PATH}'; \
6870
} > $PHP_INI_DIR/conf.d/phpmyadmin-misc.ini
6971

7072
# Calculate download URL
@@ -87,6 +89,9 @@ RUN set -ex; \
8789
apk add --no-cache --virtual .fetch-deps \
8890
gnupg \
8991
; \
92+
mkdir $SESSION_SAVE_PATH; \
93+
chmod 1777 $SESSION_SAVE_PATH; \
94+
chown www-data:www-data $SESSION_SAVE_PATH; \
9095
\
9196
export GNUPGHOME="$(mktemp -d)"; \
9297
export GPGKEY="3D06A59ECE730EB71B511C17CE752F178259BD92"; \

fpm/Dockerfile

+5
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ ENV MAX_EXECUTION_TIME 600
4444
ENV MEMORY_LIMIT 512M
4545
ENV UPLOAD_LIMIT 2048K
4646
ENV TZ UTC
47+
ENV SESSION_SAVE_PATH /sessions
4748
RUN set -ex; \
4849
\
4950
{ \
@@ -67,6 +68,7 @@ RUN set -ex; \
6768
echo 'post_max_size=${UPLOAD_LIMIT}'; \
6869
echo 'upload_max_filesize=${UPLOAD_LIMIT}'; \
6970
echo 'date.timezone=${TZ}'; \
71+
echo 'session.save_path=${SESSION_SAVE_PATH}'; \
7072
} > $PHP_INI_DIR/conf.d/phpmyadmin-misc.ini
7173

7274
# Calculate download URL
@@ -94,6 +96,9 @@ RUN set -ex; \
9496
gnupg \
9597
dirmngr \
9698
; \
99+
mkdir $SESSION_SAVE_PATH; \
100+
chmod 1777 $SESSION_SAVE_PATH; \
101+
chown www-data:www-data $SESSION_SAVE_PATH; \
97102
\
98103
export GNUPGHOME="$(mktemp -d)"; \
99104
export GPGKEY="3D06A59ECE730EB71B511C17CE752F178259BD92"; \

testing/phpmyadmin_test.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,15 @@ def test_php_ini(url, username, password, server):
104104
assert(b'upload_max_filesize' in response)
105105
assert(b'post_max_size' in response)
106106
assert(b'expose_php' in response)
107+
assert(b'session.save_path' in response)
107108

108109
assert(b'<tr><td class="e">max_execution_time</td><td class="v">125</td><td class="v">125</td></tr>' in response)
109110

110111
assert(b'<tr><td class="e">upload_max_filesize</td><td class="v">123M</td><td class="v">123M</td></tr>' in response)
111112
assert(b'<tr><td class="e">post_max_size</td><td class="v">123M</td><td class="v">123M</td></tr>' in response)
112113

113114
assert(b'<tr><td class="e">expose_php</td><td class="v">Off</td><td class="v">Off</td></tr>' in response)
114-
115+
assert(b'<tr><td class="e">session.save_path</td><td class="v">/sessions</td><td class="v">/sessions</td></tr>' in response)
115116

116117
def test_import_from_folder(url, username, password, server, sqlfile):
117118
upload_dir = os.environ.get('PMA_UPLOADDIR');

0 commit comments

Comments
 (0)