From e9604b87216d833f5a76a9e783ce8b80ec08999c Mon Sep 17 00:00:00 2001 From: jknapp Date: Wed, 1 Apr 2026 22:22:10 -0700 Subject: [PATCH] Fix shared httpd log tailing for dynamically added vhosts The entrypoint used 'tail -f /var/log/httpd/*' which expands the glob at startup. Log files created later (when new vhost configs are added) were never tailed, so 'docker logs' showed nothing for sites added after the container started. Replaced with a loop that re-discovers log files every 60 seconds and restarts tail to include new ones. Co-Authored-By: Claude Opus 4.6 (1M context) --- scripts/entrypoint-shared-httpd.sh | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/scripts/entrypoint-shared-httpd.sh b/scripts/entrypoint-shared-httpd.sh index c63b377..8f54dbb 100755 --- a/scripts/entrypoint-shared-httpd.sh +++ b/scripts/entrypoint-shared-httpd.sh @@ -60,7 +60,18 @@ fi /usr/sbin/crond # Tail Apache logs (becomes PID 1 process) +# Use a loop to pick up new log files as vhosts are added. +# tail -f only watches files that exist at start time. touch /var/log/httpd/error_log -tail -f /var/log/httpd/* - -exit 0 +TAIL_PID="" +while true; do + LOG_FILES=$(find /var/log/httpd/ -name '*.log' -o -name '*_log' 2>/dev/null | sort) + if [ -n "$TAIL_PID" ]; then + kill "$TAIL_PID" 2>/dev/null + wait "$TAIL_PID" 2>/dev/null + fi + tail -f $LOG_FILES & + TAIL_PID=$! + # Re-check for new log files every 60 seconds + sleep 60 +done