diff --git a/app/Actions/Service/StartService.php b/app/Actions/Service/StartService.php index 61f6f3731..10aa885bf 100644 --- a/app/Actions/Service/StartService.php +++ b/app/Actions/Service/StartService.php @@ -13,11 +13,13 @@ public function handle(Service $service) $service->saveComposeConfigs(); $commands[] = "cd " . $service->workdir(); $commands[] = "echo '####### Saved configuration files to {$service->workdir()}.'"; + $commands[] = "echo '####### Creating Docker network.'"; + $commands[] = "docker network create --attachable {$service->uuid} >/dev/null 2>/dev/null || true"; $commands[] = "echo '####### Starting service {$service->name} on {$service->server->name}.'"; $commands[] = "echo '####### Pulling images.'"; $commands[] = "docker compose pull"; $commands[] = "echo '####### Starting containers.'"; - $commands[] = "docker compose up -d --remove-orphans"; + $commands[] = "docker compose up -d --remove-orphans --force-recreate"; $commands[] = "docker network connect $service->uuid coolify-proxy 2>/dev/null || true"; $activity = remote_process($commands, $service->server); return $activity; diff --git a/app/Actions/Service/StopService.php b/app/Actions/Service/StopService.php index 746ab6bf7..82128f47d 100644 --- a/app/Actions/Service/StopService.php +++ b/app/Actions/Service/StopService.php @@ -21,5 +21,6 @@ public function handle(Service $service) $db->update(['status' => 'exited']); } instant_remote_process(["docker network disconnect {$service->uuid} coolify-proxy 2>/dev/null"], $service->server, false); + instant_remote_process(["docker network rm {$service->uuid} 2>/dev/null"], $service->server, false); } } diff --git a/app/Models/Service.php b/app/Models/Service.php index 2b1819366..f282df71f 100644 --- a/app/Models/Service.php +++ b/app/Models/Service.php @@ -41,6 +41,7 @@ protected static function booted() instant_remote_process(["docker volume rm -f $storage->name"], $service->server, false); }); } + instant_remote_process(["docker network rm {$service->uuid}"], $service->server, false); }); } public function type() @@ -262,7 +263,7 @@ public function parse(bool $isNew = false): Collection if (!$definedNetworkExists) { $topLevelNetworks->put($definedNetwork, [ 'name' => $definedNetwork, - 'external' => false + 'external' => true ]); } $networks = $serviceNetworks->toArray(); @@ -366,7 +367,7 @@ public function parse(bool $isNew = false): Collection if (is_null(data_get($savedService, 'fqdn'))) { $sslip = $this->sslip($this->server); $fqdn = "http://$containerName.$sslip"; - if (substr_count($key->value(),'_') === 2) { + if (substr_count($key->value(),'_') === 2 && $key->contains("=")) { $path = $value->value(); if ($generatedServiceFQDNS->count() > 0) { $alreadyGenerated = $generatedServiceFQDNS->has($key->value());