additional_servers; $servers->push($application->destination->server); foreach ($servers as $server) { $is_main_server = $application->destination->server->id === $server->id; if (! $server->isFunctional()) { if ($is_main_server) { $application->update(['status' => 'exited:unhealthy']); continue; } else { $application->additional_servers()->updateExistingPivot($server->id, ['status' => 'exited:unhealthy']); continue; } } $container = instant_remote_process(["docker container inspect $(docker container ls -q --filter 'label=coolify.applicationId={$application->id}' --filter 'label=coolify.pullRequestId=0') --format '{{json .}}'"], $server, false); $container = format_docker_command_output_to_json($container); if ($container->count() === 1) { $container = $container->first(); $containerStatus = data_get($container, 'State.Status'); $containerHealth = data_get($container, 'State.Health.Status', 'unhealthy'); if ($is_main_server) { $statusFromDb = $application->status; if ($statusFromDb !== $containerStatus) { $application->update(['status' => "$containerStatus:$containerHealth"]); } } else { $additional_server = $application->additional_servers()->wherePivot('server_id', $server->id); $statusFromDb = $additional_server->first()->pivot->status; if ($statusFromDb !== $containerStatus) { $additional_server->updateExistingPivot($server->id, ['status' => "$containerStatus:$containerHealth"]); } } } else { if ($is_main_server) { $application->update(['status' => 'exited:unhealthy']); continue; } else { $application->additional_servers()->updateExistingPivot($server->id, ['status' => 'exited:unhealthy']); continue; } } } } }