diff --git a/app/Http/Livewire/Destination/New/StandaloneDocker.php b/app/Http/Livewire/Destination/New/StandaloneDocker.php index 5abf19a90..7b1c1089b 100644 --- a/app/Http/Livewire/Destination/New/StandaloneDocker.php +++ b/app/Http/Livewire/Destination/New/StandaloneDocker.php @@ -45,7 +45,7 @@ class StandaloneDocker extends Component $server = Server::find($this->server_id); - instantRemoteProcess($server, ['docker network create --attachable ' . $this->network], throwError: false); + instantRemoteProcess(['docker network create --attachable ' . $this->network], $server, throwError: false); return redirect()->route('destination.show', $docker->uuid); } } diff --git a/app/Http/Livewire/ForceUpgrade.php b/app/Http/Livewire/ForceUpgrade.php index bec3ee0f8..f73bf9cee 100644 --- a/app/Http/Livewire/ForceUpgrade.php +++ b/app/Http/Livewire/ForceUpgrade.php @@ -16,9 +16,9 @@ class ForceUpgrade extends Component if (!$server) { return; } - instantRemoteProcess($server, [ + instantRemoteProcess([ "sleep 2" - ]); + ], $server); remoteProcess([ "sleep 10" ], $server, ActivityTypes::INLINE->value); @@ -32,15 +32,16 @@ class ForceUpgrade extends Component return; } - instantRemoteProcess($server, [ + instantRemoteProcess([ "curl -fsSL $cdn/docker-compose.yml -o /data/coolify/source/docker-compose.yml", "curl -fsSL $cdn/docker-compose.prod.yml -o /data/coolify/source/docker-compose.prod.yml", "curl -fsSL $cdn/.env.production -o /data/coolify/source/.env.production", "curl -fsSL $cdn/upgrade.sh -o /data/coolify/source/upgrade.sh", - ]); - instantRemoteProcess($server, [ + ], $server); + + instantRemoteProcess([ "docker compose -f /data/coolify/source/docker-compose.yml -f /data/coolify/source/docker-compose.prod.yml pull", - ]); + ], $server); remoteProcess([ "bash /data/coolify/source/upgrade.sh $latestVersion" diff --git a/app/Http/Livewire/Project/Application/Deploy.php b/app/Http/Livewire/Project/Application/Deploy.php index ba31e4fbf..23d6bdbee 100644 --- a/app/Http/Livewire/Project/Application/Deploy.php +++ b/app/Http/Livewire/Project/Application/Deploy.php @@ -73,7 +73,7 @@ class Deploy extends Component } public function stop() { - instantRemoteProcess($this->destination->server, ["docker rm -f {$this->application->uuid}"]); + instantRemoteProcess(["docker rm -f {$this->application->uuid}"], $this->destination->server); if ($this->application->status != 'exited') { $this->application->status = 'exited'; $this->application->save(); diff --git a/app/Http/Livewire/Server/Form.php b/app/Http/Livewire/Server/Form.php index 08d2d7cf9..136d37b98 100644 --- a/app/Http/Livewire/Server/Form.php +++ b/app/Http/Livewire/Server/Form.php @@ -2,6 +2,7 @@ namespace App\Http\Livewire\Server; +use App\Enums\ActivityTypes; use App\Models\Server; use Illuminate\Support\Facades\Validator; use Livewire\Component; @@ -28,15 +29,22 @@ class Form extends Component public function installDocker() { $config = base64_encode('{ "live-restore": true }'); - instantRemoteProcess($this->server, [ - "curl https://releases.rancher.com/install-docker/23.0.sh | sh" - ]); + remoteProcess([ + "curl https://releases.rancher.com/install-docker/23.0.sh | sh", + "echo '{$config}' | base64 -d > /etc/docker/daemon.json", + "systemctl restart docker" + ], $this->server, ActivityTypes::INLINE->value); } public function checkServer() { - $this->uptime = instantRemoteProcess($this->server, ['uptime']); - $this->dockerVersion = instantRemoteProcess($this->server, ['docker version|head -2|grep -i version'], false); - $this->dockerComposeVersion = instantRemoteProcess($this->server, ['docker compose version|head -2|grep -i version'], false); + try { + + $this->uptime = instantRemoteProcess(['uptime'], $this->server); + $this->dockerVersion = instantRemoteProcess(['docker version|head -2|grep -i version'], $this->server, false); + $this->dockerComposeVersion = instantRemoteProcess(['docker compose version|head -2|grep -i version'], $this->server, false); + } catch (\Exception $e) { + $this->addError('server.ip', $e->getMessage()); + } } public function submit() { diff --git a/app/Jobs/ContainerStatusJob.php b/app/Jobs/ContainerStatusJob.php index 5924cae3a..bc05d6e0b 100644 --- a/app/Jobs/ContainerStatusJob.php +++ b/app/Jobs/ContainerStatusJob.php @@ -38,7 +38,7 @@ class ContainerStatusJob implements ShouldQueue $not_found_applications = $applications; $containers = collect(); foreach ($servers as $server) { - $output = instantRemoteProcess($server, ['docker ps -a -q --format \'{{json .}}\'']); + $output = instantRemoteProcess(['docker ps -a -q --format \'{{json .}}\''], $server); $containers = $containers->concat(formatDockerCmdOutputToJson($output)); } foreach ($containers as $container) { @@ -67,7 +67,7 @@ class ContainerStatusJob implements ShouldQueue return; } if ($application->destination->server) { - $container = instantRemoteProcess($application->destination->server, ["docker inspect --format '{{json .State}}' {$this->container_id}"]); + $container = instantRemoteProcess(["docker inspect --format '{{json .State}}' {$this->container_id}"], $application->destination->server); $container = formatDockerCmdOutputToJson($container); $application->status = $container[0]['Status']; $application->save(); diff --git a/app/Jobs/DockerCleanupDanglingImagesJob.php b/app/Jobs/DockerCleanupDanglingImagesJob.php index 0938b6bb8..256016330 100644 --- a/app/Jobs/DockerCleanupDanglingImagesJob.php +++ b/app/Jobs/DockerCleanupDanglingImagesJob.php @@ -31,7 +31,7 @@ class DockerCleanupDanglingImagesJob implements ShouldQueue try { $servers = Server::all(); foreach ($servers as $server) { - instantRemoteProcess($server, ['docker image prune -f']); + instantRemoteProcess(['docker image prune -f'], $server); } } catch (\Exception $e) { Log::error($e->getMessage()); diff --git a/bootstrap/helpers.php b/bootstrap/helpers.php index 49569d1a4..51aff79a7 100644 --- a/bootstrap/helpers.php +++ b/bootstrap/helpers.php @@ -120,7 +120,7 @@ if (!function_exists('formatDockerLabelsToJson')) { } } if (!function_exists('instantRemoteProcess')) { - function instantRemoteProcess(Server $server, array $command, $throwError = true) + function instantRemoteProcess(array $command, Server $server, $throwError = true) { $command_string = implode("\n", $command); $private_key_location = savePrivateKeyForServer($server);