Fix Docker bootstrap: supervisord socket not configured
supervisord.conf was missing [unix_http_server], [supervisorctl], and [rpcinterface:supervisor] sections, so the Unix socket was never created. This caused the readiness check to always fail and the container to exit with "Supervisord failed to start". - Add missing supervisord socket and RPC configuration sections - Improve bootstrap readiness check to verify both process and socket - Add early exit if supervisord process dies unexpectedly - Simplify supervisorctl calls (config path no longer needed) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
+9
-5
@@ -146,23 +146,27 @@ if [ ! -f "$SEED_MARKER" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# Wait for supervisord socket to be ready
|
||||
# Wait for supervisord to be ready
|
||||
echo "▶ Waiting for supervisord..."
|
||||
for i in $(seq 1 30); do
|
||||
if supervisorctl -c /etc/supervisor/conf.d/supervisord.conf status >/dev/null 2>&1; then
|
||||
if kill -0 $SUPERVISOR_PID 2>/dev/null && [ -S /var/run/supervisor.sock ]; then
|
||||
echo "✓ Supervisord is ready"
|
||||
break
|
||||
fi
|
||||
if ! kill -0 $SUPERVISOR_PID 2>/dev/null; then
|
||||
echo "✗ Supervisord process died"
|
||||
exit 1
|
||||
fi
|
||||
if [ $i -eq 30 ]; then
|
||||
echo "✗ Supervisord failed to start"
|
||||
echo "✗ Supervisord socket not available after 30s"
|
||||
exit 1
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# Start Next.js
|
||||
# Start Next.js via supervisorctl
|
||||
echo "▶ Starting Next.js..."
|
||||
supervisorctl -c /etc/supervisor/conf.d/supervisord.conf start nextjs
|
||||
supervisorctl start nextjs
|
||||
|
||||
echo ""
|
||||
echo "╔═══════════════════════════════════════════════════════════════╗"
|
||||
|
||||
@@ -1,3 +1,13 @@
|
||||
[unix_http_server]
|
||||
file=/var/run/supervisor.sock
|
||||
chmod=0700
|
||||
|
||||
[supervisorctl]
|
||||
serverurl=unix:///var/run/supervisor.sock
|
||||
|
||||
[rpcinterface:supervisor]
|
||||
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
|
||||
|
||||
[supervisord]
|
||||
nodaemon=true
|
||||
user=root
|
||||
|
||||
Reference in New Issue
Block a user