From fc0bb2979b8088c29522161e2d598ff780b6693a Mon Sep 17 00:00:00 2001 From: "Gan, Jimmy" Date: Tue, 31 Mar 2026 14:32:47 +0800 Subject: [PATCH] fix: use lazy initialization for Docker clients in cc_connect and security routers --- dashboard/backend/routers/security.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/dashboard/backend/routers/security.py b/dashboard/backend/routers/security.py index 812af0c..11b2c82 100644 --- a/dashboard/backend/routers/security.py +++ b/dashboard/backend/routers/security.py @@ -7,7 +7,15 @@ from fastapi import APIRouter, Query from config import DOCKER_HOST router = APIRouter() -client = docker.DockerClient(base_url=DOCKER_HOST, timeout=10) + +_client = None + +def get_docker_client(): + """Get or create Docker client (lazy initialization).""" + global _client + if _client is None: + _client = docker.DockerClient(base_url=DOCKER_HOST, timeout=10) + return _client _tz_cst = timezone(timedelta(hours=8)) @@ -190,6 +198,7 @@ def security_logs( # Authelia logs try: + client = get_docker_client() authelia = client.containers.get("authelia") raw = authelia.logs(tail=tail, timestamps=False).decode(errors="replace") results.extend(_parse_authelia_logs(raw, limit)) @@ -214,6 +223,7 @@ def security_stats(tail: int = Query(500, le=2000)): caddy_entries = [] try: + client = get_docker_client() authelia = client.containers.get("authelia") raw = authelia.logs(tail=tail, timestamps=False).decode(errors="replace") auth_entries = _parse_authelia_logs(raw, 1000)