where('settings->is_build_server', '=', false)->first(); $applications = Application::all(); $not_found_applications = $applications; $containers = []; // foreach ($servers as $server) { $private_key_location = savePrivateKey($server); $ssh_command = generateSshCommand($private_key_location, $server->ip, $server->user, $server->port, 'docker ps -a -q --format \'{{json .}}\''); $process = Process::run($ssh_command); $output = trim($process->output()); $containers = formatDockerCmdOutputToJson($output); foreach ($containers as $container) { $found_application = $applications->filter(function ($value, $key) use ($container) { return $value->uuid == $container['Names']; })->first(); if ($found_application) { $not_found_applications = $not_found_applications->filter(function ($value, $key) use ($found_application) { return $value->uuid != $found_application->uuid; }); $found_application->status = $container['State']; $found_application->save(); Log::info('Found application: ' . $found_application->uuid . ' settings status to: ' . $found_application->status); } } foreach ($not_found_applications as $not_found_application) { $not_found_application->status = 'exited'; $not_found_application->save(); Log::info('Not found application: ' . $not_found_application->uuid . ' settings status to: ' . $not_found_application->status); } } catch (\Exception $e) { Log::error($e->getMessage()); } } }