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
|
COPY --from=frontend --chown=appuser:appuser /frontend/dist /app/frontend/dist
|
||||||
|
|
||||||
# Make entrypoint scripts executable
|
# 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
|
# Create storage directory
|
||||||
RUN mkdir -p /data/storage && chown -R appuser:appuser /data
|
RUN mkdir -p /data/storage && chown -R appuser:appuser /data
|
||||||
@@ -86,6 +86,6 @@ USER appuser
|
|||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
|
|
||||||
HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
|
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"]
|
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