From 5b7b3292795c31b6e7cdc6bf2b536b89bcf018a9 Mon Sep 17 00:00:00 2001 From: DDSRem <73049927+DDSRem@users.noreply.github.com> Date: Sun, 25 May 2025 18:20:04 +0800 Subject: [PATCH] fix(docker): repair restart judgment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当 DOCKER_CLIENT_API 不等于默认值时代表外部调用重启,无需再映射 `/var/run/docker.sock` --- app/helper/system.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/helper/system.py b/app/helper/system.py index 701c99f3..c1c07764 100644 --- a/app/helper/system.py +++ b/app/helper/system.py @@ -8,13 +8,15 @@ from app.utils.system import SystemUtils class SystemHelper: - @staticmethod def can_restart() -> bool: """ 判断是否可以内部重启 """ - return Path("/var/run/docker.sock").exists() + return ( + Path("/var/run/docker.sock").exists() + or settings.DOCKER_CLIENT_API != "tcp://127.0.0.1:38379" + ) @staticmethod def restart() -> Tuple[bool, str]: @@ -28,7 +30,7 @@ class SystemHelper: client = docker.DockerClient(base_url=settings.DOCKER_CLIENT_API) # 获取当前容器的 ID container_id = None - with open('/proc/self/mountinfo', 'r') as f: + with open("/proc/self/mountinfo", "r") as f: data = f.read() index_resolv_conf = data.find("resolv.conf") if index_resolv_conf != -1: @@ -39,7 +41,9 @@ class SystemHelper: index_resolv_conf = data.find("/sys/fs/cgroup/devices") if index_resolv_conf != -1: index_second_slash = data.rfind(" ", 0, index_resolv_conf) - index_first_slash = data.rfind("/", 0, index_second_slash) + 1 + index_first_slash = ( + data.rfind("/", 0, index_second_slash) + 1 + ) container_id = data[index_first_slash:index_second_slash] if not container_id: return False, "获取容器ID失败!"