fix: worker healthcheck — Redis ping instead of HTTP check for worker container
This commit is contained in:
+2
-2
@@ -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"]
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user