Skip to content

Commit 0cd2d43

Browse files
committed
Fix debug mode with unprivileged images (Fixes #327)
1 parent 09dee48 commit 0cd2d43

6 files changed

Lines changed: 36 additions & 12 deletions

File tree

src/common/etc/entrypoint.d/1-debug-mode.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ if [ "$DISABLE_DEFAULT_CONFIG" = false ]; then
55
set_php_ini (){
66
php_ini_setting=$1
77
php_ini_value=$2
8-
php_ini_debug_file="$PHP_INI_DIR/php.ini"
9-
php_fpm_debug_conf_file="/usr/local/etc/php-fpm.d/zzz-fpm-debug.conf"
8+
php_ini_debug_file="$PHP_INI_DIR/conf.d/zzz-serversideup-docker-php-debug.ini"
9+
php_fpm_debug_conf_file="/usr/local/etc/php-fpm.d/zzz-docker-php-serversideup-fpm-debug.conf"
1010

1111
echo "$php_ini_setting = $php_ini_value" >> "$php_ini_debug_file"
1212
echo "ℹ️ NOTICE ($script_name): INI - $php_ini_setting has been set to \"$php_ini_value\"."

src/common/usr/local/bin/docker-php-serversideup-set-file-permissions

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,14 @@ else
5353
exit 1
5454
fi
5555

56-
# Function to change ownership of directories
5756
change_ownership() {
58-
for dir in "$@"; do
59-
if [ -d "$dir" ]; then
60-
chown -R "$OWNER" "$dir"
61-
echo "$script_name: Ownership of $dir changed to $OWNER."
57+
for path in "$@"; do
58+
if [ -e "$path" ]; then
59+
chown -R "$OWNER" "$path"
60+
echo "$script_name: Ownership of $path changed to $OWNER."
6261
else
63-
echo "$script_name: Directory not found: $dir"
62+
echo "$script_name: Directory not found: $path"
63+
exit 1
6464
fi
6565
done
6666
}
@@ -69,11 +69,17 @@ change_ownership() {
6969
case "$OS" in
7070
debian)
7171
case "$SERVICE" in
72+
cli)
73+
DIRS="/var/www/ $PHP_INI_DIR/conf.d/zzz-serversideup-docker-php-debug.ini"
74+
;;
75+
fpm)
76+
DIRS="/var/www/ /usr/local/etc/php-fpm.d/zzz-docker-php-serversideup-fpm-debug.conf $PHP_INI_DIR/conf.d/zzz-serversideup-docker-php-debug.ini"
77+
;;
7278
apache)
73-
DIRS="/etc/apache2 /etc/ssl/private /var/log/apache2 /var/www/"
79+
DIRS="/etc/apache2 /etc/ssl/private /var/log/apache2 /var/www/ /usr/local/etc/php-fpm.d/zzz-docker-php-serversideup-fpm-debug.conf $PHP_INI_DIR/conf.d/zzz-serversideup-docker-php-debug.ini"
7480
;;
7581
nginx)
76-
DIRS="/etc/nginx/ /var/log/nginx /etc/ssl/private /var/cache/nginx/ /var/www/"
82+
DIRS="/etc/nginx/ /var/log/nginx /etc/ssl/private /var/cache/nginx/ /var/www/ /usr/local/etc/php-fpm.d/zzz-docker-php-serversideup-fpm-debug.conf $PHP_INI_DIR/conf.d/zzz-serversideup-docker-php-debug.ini"
7783
;;
7884
unit)
7985
DIRS="/var/log/unit /var/run/unit /etc/unit /etc/ssl/private/ /var/lib/unit/ /var/www/"
@@ -86,11 +92,17 @@ case "$OS" in
8692
;;
8793
alpine)
8894
case "$SERVICE" in
95+
cli)
96+
DIRS="/var/www/ $PHP_INI_DIR/conf.d/zzz-serversideup-docker-php-debug.ini"
97+
;;
98+
fpm)
99+
DIRS="/var/www/ /usr/local/etc/php-fpm.d/zzz-docker-php-serversideup-fpm-debug.conf $PHP_INI_DIR/conf.d/zzz-serversideup-docker-php-debug.ini"
100+
;;
89101
apache)
90-
DIRS="/etc/apache2 /etc/ssl/private /var/www/"
102+
DIRS="/etc/apache2 /etc/ssl/private /var/www/ /usr/local/etc/php-fpm.d/zzz-docker-php-serversideup-fpm-debug.conf $PHP_INI_DIR/conf.d/zzz-serversideup-docker-php-debug.ini"
91103
;;
92104
nginx)
93-
DIRS="/etc/nginx/ /var/log/nginx /etc/ssl/private /var/lib/nginx /var/www/"
105+
DIRS="/etc/nginx/ /var/log/nginx /etc/ssl/private /var/lib/nginx /var/www/ /usr/local/etc/php-fpm.d/zzz-docker-php-serversideup-fpm-debug.conf $PHP_INI_DIR/conf.d/zzz-serversideup-docker-php-debug.ini"
94106
;;
95107
*)
96108
echo "$script_name: Unsupported SERVICE: $SERVICE"
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2+
; This is an intentionally empty file. It is used as a placeholder
3+
; for setting proper file permissions when DEBUG mode is enabled.
4+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2+
; This is an intentionally empty file. It is used as a placeholder
3+
; for setting proper file permissions when DEBUG mode is enabled.
4+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

src/variations/cli/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ RUN docker-php-serversideup-dep-install-alpine "${DEPENDENCY_PACKAGES_ALPINE}" &
6868
# install composer from Composer's official Docker image
6969
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
7070

71+
RUN docker-php-serversideup-set-file-permissions --owner www-data:www-data --service cli
72+
7173
WORKDIR ${APP_BASE_DIR}
7274

7375
USER www-data

src/variations/fpm/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ COPY src/php-fpm.d/ /
7878
# install composer from Composer's official Docker image
7979
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
8080

81+
RUN docker-php-serversideup-set-file-permissions --owner www-data:www-data --service fpm
82+
8183
ENTRYPOINT ["docker-php-serversideup-entrypoint"]
8284

8385
STOPSIGNAL SIGQUIT

0 commit comments

Comments
 (0)