From 3e5d18a202a7735402ba9f23e362899cf874ec16 Mon Sep 17 00:00:00 2001 From: H01001000 Date: Sat, 13 Dec 2025 17:24:10 -0800 Subject: [PATCH] refactor: change to run on all server same time --- app/Actions/Shared/ComplexStatusCheck.php | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/app/Actions/Shared/ComplexStatusCheck.php b/app/Actions/Shared/ComplexStatusCheck.php index 70a985e6a..1c8f84ac5 100644 --- a/app/Actions/Shared/ComplexStatusCheck.php +++ b/app/Actions/Shared/ComplexStatusCheck.php @@ -18,6 +18,17 @@ class ComplexStatusCheck { $servers = $application->additional_servers; $servers->push($application->destination->server); + + $serversToInspect = $servers->filter(fn($server) => !isset($dockerInspectCache->data[$server->id])); + + if ($serversToInspect->isNotEmpty()) { + $results = instant_remote_process(["docker container inspect $(docker container ls -aq) --format '{{json .}}'"], $serversToInspect, false); + + foreach ($results as $serverId => $result) { + $dockerInspectCache->data[$serverId] = format_docker_command_output_to_json($result); + } + } + foreach ($servers as $server) { $is_main_server = $application->destination->server->id === $server->id; if (! $server->isFunctional()) { @@ -31,19 +42,14 @@ class ComplexStatusCheck continue; } } - - if (!isset($dockerInspectCache->data[$server->id])) { - $allContainers = instant_remote_process(["docker container inspect $(docker ps -aq --filter 'label=coolify.pullRequestId=0') --format 'json'"], $server, false); - $allContainers = format_docker_command_output_to_json($allContainers); - $dockerInspectCache->data[$server->id] = $allContainers; - } $allContainers = $dockerInspectCache->data[$server->id]; $containers = collect($allContainers)->filter(function ($container) use ($application) { $labels = data_get($container, 'Config.Labels', []); - $appId = data_get($labels, 'coolify.applicationId'); + $appId = $labels['coolify.applicationId'] ?? null; + $pullRequestId = $labels['coolify.pullRequestId'] ?? null; - return $appId && intval($appId) === $application->id; + return $appId !== null && intval($appId) === $application->id && $pullRequestId !== null && intval($pullRequestId) === 0; }); if ($containers->count() > 0) {