fix: worker healthcheck — Redis ping instead of HTTP check for worker container

This commit is contained in:
Agent Zero
2026-07-26 23:31:07 +02:00
parent 98eb1d0d89
commit 99643d25ab
2 changed files with 22 additions and 2 deletions
+2 -2
View File
@@ -76,7 +76,7 @@ COPY --chown=appuser:appuser . .
COPY --from=frontend --chown=appuser:appuser /frontend/dist /app/frontend/dist
# Make entrypoint scripts executable
RUN chmod +x /app/prestart.sh /app/worker.sh
RUN chmod +x /app/prestart.sh /app/worker.sh /app/healthcheck.sh
# Create storage directory
RUN mkdir -p /data/storage && chown -R appuser:appuser /data
@@ -86,6 +86,6 @@ USER appuser
EXPOSE 8000
HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
CMD curl -fsS http://localhost:8000/api/v1/health || exit 1
CMD /app/healthcheck.sh
ENTRYPOINT ["/app/prestart.sh"]
+20
View File
@@ -0,0 +1,20 @@
#!/bin/bash
# LeoCRM Healthcheck — works for both web server and worker containers.
# If port 8000 is listening → HTTP health check.
# Otherwise (worker) → Redis ping check.
if curl -fsS http://localhost:8000/api/v1/health > /dev/null 2>&1; then
exit 0
fi
# No web server — check Redis connectivity (worker mode)
python3 -c "
import os, sys
import redis
try:
r = redis.from_url(os.environ.get('REDIS_URL', 'redis://localhost:6379/0'))
r.ping()
sys.exit(0)
except Exception:
sys.exit(1)
" 2>/dev/null || exit 1