You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- c8fb434f (p1): queue/scheduler healthchecks used pgrep (not installed) → always
unhealthy. Now check PID 1 for 'bench worker' / 'bench schedule' — no pgrep.
- 9bd1d9f7 (p1): exe-erp-nginx cached the upstream IP and 502'd permanently after
exe-erp was recreated. Added Docker DNS resolver (127.0.0.11 valid=10s) + variable
proxy_pass to http://exe-erp:8000 so nginx re-resolves per-request — a recreated
Frappe container is picked up without an nginx restart.
docker compose config passes; git diff --check clean.
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
# The RQ worker has no listening port; liveness = the worker process
197
197
# is still running. Without this the container can wedge silently and
198
198
# background jobs stop processing with no signal (bug 81a9b8ad).
199
-
# Uses Python (guaranteed in the image) to scan /proc — no extra apt
199
+
# Uses Python (guaranteed in the image) to inspect PID 1 — no extra apt
200
200
# deps (procps/pgrep are not installed in the slim base).
201
201
healthcheck:
202
-
test: ["CMD-SHELL", "python -c \"import glob;import sys;sys.exit(0 if any('worker' in open(f).read() for f in glob.glob('/proc/[0-9]*/cmdline')) else 1)\" 2>/dev/null || exit 1"]
202
+
test: ["CMD-SHELL", "python -c \"import sys; cmd=open('/proc/1/cmdline','rb').read().replace(b'\\0', b' '); sys.exit(0 if b'bench worker' in cmd else 1)\""]
203
203
interval: 30s
204
204
timeout: 10s
205
205
retries: 3
@@ -244,15 +244,41 @@ services:
244
244
# The scheduler has no listening port; liveness = the schedule process
245
245
# is still running. Without this a stalled scheduler stops dispatching
246
246
# cron jobs (enqueued_calls, daily/weekly tasks) silently (bug 81a9b8ad).
247
-
# Uses Python (guaranteed in the image) to scan /proc — no extra apt
247
+
# Uses Python (guaranteed in the image) to inspect PID 1 — no extra apt
248
248
# deps (procps/pgrep are not installed in the slim base).
249
249
healthcheck:
250
-
test: ["CMD-SHELL", "python -c \"import glob;import sys;sys.exit(0 if any('schedule' in open(f).read() for f in glob.glob('/proc/[0-9]*/cmdline')) else 1)\" 2>/dev/null || exit 1"]
250
+
test: ["CMD-SHELL", "python -c \"import sys; cmd=open('/proc/1/cmdline','rb').read().replace(b'\\0', b' '); sys.exit(0 if b'bench schedule' in cmd else 1)\""]
0 commit comments