feat: global Docker health indicator and graceful degradation

- GET /api/health endpoint returning Docker connectivity status
- Sidebar shows Docker connection dot (green=connected, red=disconnected)
- Stale scanner returns store-only results when Docker is unavailable
- Polls health every 30s
This commit is contained in:
2026-03-30 13:43:33 +03:00
parent b57b164be0
commit 37cfa090ac
15 changed files with 317 additions and 277 deletions
+3 -1
View File
@@ -216,7 +216,9 @@ func (s *Scanner) FindStaleInstances(ctx context.Context) ([]StaleInstance, erro
containers, err := s.docker.ListContainers(ctx, nil)
if err != nil {
return nil, fmt.Errorf("list docker containers: %w", err)
// Docker unavailable — fall back to store-only detection (no live state).
slog.Warn("stale scanner: docker unavailable, using store status only", "error", err)
containers = nil
}
containerStateByInstanceID := make(map[string]string, len(containers))