mirror of
https://github.com/ershisan99/coolify.git
synced 2025-12-18 12:33:06 +00:00
refactor: Update Traefik labels on init and cleanup unnecessary dynamic proxy configuration
This commit is contained in:
@@ -99,24 +99,32 @@ class Init extends Command
|
|||||||
|
|
||||||
private function update_traefik_labels()
|
private function update_traefik_labels()
|
||||||
{
|
{
|
||||||
Server::where('proxy->type', 'TRAEFIK_V2')->update(['proxy->type' => 'TRAEFIK']);
|
try {
|
||||||
|
Server::where('proxy->type', 'TRAEFIK_V2')->update(['proxy->type' => 'TRAEFIK']);
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
echo "Error in updating traefik labels: {$e->getMessage()}\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function cleanup_unnecessary_dynamic_proxy_configuration()
|
private function cleanup_unnecessary_dynamic_proxy_configuration()
|
||||||
{
|
{
|
||||||
if (isCloud()) {
|
if (isCloud()) {
|
||||||
foreach ($this->servers as $server) {
|
foreach ($this->servers as $server) {
|
||||||
if (! $server->isFunctional()) {
|
try {
|
||||||
continue;
|
if (! $server->isFunctional()) {
|
||||||
}
|
continue;
|
||||||
if ($server->id === 0) {
|
}
|
||||||
continue;
|
if ($server->id === 0) {
|
||||||
}
|
continue;
|
||||||
$file = $server->proxyPath().'/dynamic/coolify.yaml';
|
}
|
||||||
|
$file = $server->proxyPath().'/dynamic/coolify.yaml';
|
||||||
|
|
||||||
return instant_remote_process([
|
return instant_remote_process([
|
||||||
"rm -f $file",
|
"rm -f $file",
|
||||||
], $server, false);
|
], $server, false);
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
echo "Error in cleaning up unnecessary dynamic proxy configuration: {$e->getMessage()}\n";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -124,7 +132,6 @@ class Init extends Command
|
|||||||
|
|
||||||
private function cleanup_unused_network_from_coolify_proxy()
|
private function cleanup_unused_network_from_coolify_proxy()
|
||||||
{
|
{
|
||||||
ray()->clearAll();
|
|
||||||
foreach ($this->servers as $server) {
|
foreach ($this->servers as $server) {
|
||||||
if (! $server->isFunctional()) {
|
if (! $server->isFunctional()) {
|
||||||
continue;
|
continue;
|
||||||
@@ -132,29 +139,33 @@ class Init extends Command
|
|||||||
if (! $server->isProxyShouldRun()) {
|
if (! $server->isProxyShouldRun()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
['networks' => $networks, 'allNetworks' => $allNetworks] = collectDockerNetworksByServer($server);
|
try {
|
||||||
$removeNetworks = $allNetworks->diff($networks);
|
['networks' => $networks, 'allNetworks' => $allNetworks] = collectDockerNetworksByServer($server);
|
||||||
$commands = collect();
|
$removeNetworks = $allNetworks->diff($networks);
|
||||||
foreach ($removeNetworks as $network) {
|
$commands = collect();
|
||||||
$out = instant_remote_process(["docker network inspect -f json $network | jq '.[].Containers | if . == {} then null else . end'"], $server, false);
|
foreach ($removeNetworks as $network) {
|
||||||
if (empty($out)) {
|
$out = instant_remote_process(["docker network inspect -f json $network | jq '.[].Containers | if . == {} then null else . end'"], $server, false);
|
||||||
$commands->push("docker network disconnect $network coolify-proxy >/dev/null 2>&1 || true");
|
if (empty($out)) {
|
||||||
$commands->push("docker network rm $network >/dev/null 2>&1 || true");
|
$commands->push("docker network disconnect $network coolify-proxy >/dev/null 2>&1 || true");
|
||||||
} else {
|
$commands->push("docker network rm $network >/dev/null 2>&1 || true");
|
||||||
$data = collect(json_decode($out, true));
|
} else {
|
||||||
if ($data->count() === 1) {
|
$data = collect(json_decode($out, true));
|
||||||
// If only coolify-proxy itself is connected to that network (it should not be possible, but who knows)
|
if ($data->count() === 1) {
|
||||||
$isCoolifyProxyItself = data_get($data->first(), 'Name') === 'coolify-proxy';
|
// If only coolify-proxy itself is connected to that network (it should not be possible, but who knows)
|
||||||
if ($isCoolifyProxyItself) {
|
$isCoolifyProxyItself = data_get($data->first(), 'Name') === 'coolify-proxy';
|
||||||
$commands->push("docker network disconnect $network coolify-proxy >/dev/null 2>&1 || true");
|
if ($isCoolifyProxyItself) {
|
||||||
$commands->push("docker network rm $network >/dev/null 2>&1 || true");
|
$commands->push("docker network disconnect $network coolify-proxy >/dev/null 2>&1 || true");
|
||||||
|
$commands->push("docker network rm $network >/dev/null 2>&1 || true");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
if ($commands->isNotEmpty()) {
|
||||||
if ($commands->isNotEmpty()) {
|
echo "Cleaning up unused networks from coolify proxy\n";
|
||||||
echo "Cleaning up unused networks from coolify proxy\n";
|
remote_process(command: $commands, type: ActivityTypes::INLINE->value, server: $server, ignore_errors: false);
|
||||||
remote_process(command: $commands, type: ActivityTypes::INLINE->value, server: $server, ignore_errors: false);
|
}
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
echo "Error in cleaning up unused networks from coolify proxy: {$e->getMessage()}\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -231,7 +242,6 @@ class Init extends Command
|
|||||||
private function cleanup_in_progress_application_deployments()
|
private function cleanup_in_progress_application_deployments()
|
||||||
{
|
{
|
||||||
// Cleanup any failed deployments
|
// Cleanup any failed deployments
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (isCloud()) {
|
if (isCloud()) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user