fix: manually create network for services

This commit is contained in:
Andras Bacsai 2023-09-27 22:35:10 +02:00
parent d609fcaee1
commit 0f542c65ae
3 changed files with 7 additions and 3 deletions

View File

@ -13,11 +13,13 @@ public function handle(Service $service)
$service->saveComposeConfigs(); $service->saveComposeConfigs();
$commands[] = "cd " . $service->workdir(); $commands[] = "cd " . $service->workdir();
$commands[] = "echo '####### Saved configuration files to {$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 '####### Starting service {$service->name} on {$service->server->name}.'";
$commands[] = "echo '####### Pulling images.'"; $commands[] = "echo '####### Pulling images.'";
$commands[] = "docker compose pull"; $commands[] = "docker compose pull";
$commands[] = "echo '####### Starting containers.'"; $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"; $commands[] = "docker network connect $service->uuid coolify-proxy 2>/dev/null || true";
$activity = remote_process($commands, $service->server); $activity = remote_process($commands, $service->server);
return $activity; return $activity;

View File

@ -21,5 +21,6 @@ public function handle(Service $service)
$db->update(['status' => 'exited']); $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 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);
} }
} }

View File

@ -41,6 +41,7 @@ protected static function booted()
instant_remote_process(["docker volume rm -f $storage->name"], $service->server, false); 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() public function type()
@ -262,7 +263,7 @@ public function parse(bool $isNew = false): Collection
if (!$definedNetworkExists) { if (!$definedNetworkExists) {
$topLevelNetworks->put($definedNetwork, [ $topLevelNetworks->put($definedNetwork, [
'name' => $definedNetwork, 'name' => $definedNetwork,
'external' => false 'external' => true
]); ]);
} }
$networks = $serviceNetworks->toArray(); $networks = $serviceNetworks->toArray();
@ -366,7 +367,7 @@ public function parse(bool $isNew = false): Collection
if (is_null(data_get($savedService, 'fqdn'))) { if (is_null(data_get($savedService, 'fqdn'))) {
$sslip = $this->sslip($this->server); $sslip = $this->sslip($this->server);
$fqdn = "http://$containerName.$sslip"; $fqdn = "http://$containerName.$sslip";
if (substr_count($key->value(),'_') === 2) { if (substr_count($key->value(),'_') === 2 && $key->contains("=")) {
$path = $value->value(); $path = $value->value();
if ($generatedServiceFQDNS->count() > 0) { if ($generatedServiceFQDNS->count() > 0) {
$alreadyGenerated = $generatedServiceFQDNS->has($key->value()); $alreadyGenerated = $generatedServiceFQDNS->has($key->value());