@@ -44,4 +44,40 @@ if [ "$1" = "nginx" ] || [ "$1" = "nginx-debug" ]; then
4444 fi
4545fi
4646
47+ CURRENT_UID=$( id -u)
48+ if [ " $CURRENT_UID " -gt " 0" ]; then
49+ # Running as Unprivileged User
50+ entrypoint_log " $0 : Running as unprivileged user (UID: $CURRENT_UID ). Configuring for unprivileged mode (Port 8080)."
51+
52+ # Define targets
53+ CONF_FILES=" /etc/nginx/conf.d/default.conf /etc/nginx/nginx.conf"
54+
55+ for FILE in $CONF_FILES ; do
56+ if [ -w " $FILE " ]; then
57+ # Check if it actually contains port 80
58+ if grep -q " listen .*80;" " $FILE " ; then
59+ entrypoint_log " Changing port 80 to 8080 in $FILE "
60+ # Use a safe writable subdirectory for the swap file
61+ sed ' s/listen\s*80;/listen 8080;/g' " $FILE " > /tmp/client_temp/nginx_swap.conf && \
62+ cat /tmp/client_temp/nginx_swap.conf > " $FILE " && \
63+ rm -f /tmp/client_temp/nginx_swap.conf
64+ fi
65+
66+ # Redirect temp paths to /tmp if we are editing the main nginx.conf
67+ if [ " $FILE " = " /etc/nginx/nginx.conf" ]; then
68+ entrypoint_log " Redirecting NGINX temp paths and setting PID to /tmp in $FILE "
69+ # Use a safe writable subdirectory for the swap file
70+ sed -e ' /^user/d' \
71+ -e ' s,^#\?\s*pid\s\+.*;$,pid /var/run/nginx/nginx.pid;,' \
72+ -e ' /http {/a \ client_body_temp_path /tmp/client_temp;\n proxy_temp_path /tmp/proxy_temp;\n fastcgi_temp_path /tmp/fastcgi_temp;\n uwsgi_temp_path /tmp/uwsgi_temp;\n scgi_temp_path /tmp/scgi_temp;' \
73+ " $FILE " > /tmp/client_temp/nginx_ultra.conf && \
74+ cat /tmp/client_temp/nginx_ultra.conf > " $FILE " && \
75+ rm -f /tmp/client_temp/nginx_ultra.conf
76+ entrypoint_log " $0 : Removed 'user' directive and updated PID path."
77+ fi
78+ fi
79+ done
80+
81+ entrypoint_log " $0 : Listening on port 8080."
82+ fi
4783exec " $@ "
0 commit comments