From 5a90eed7ef27e155d3f5753c082bf28ead7a8535 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Wed, 4 Oct 2023 14:40:26 +0200 Subject: [PATCH] fix: compose parser updated --- app/Models/Service.php | 17 +++++++++++++---- bootstrap/helpers/services.php | 9 +++++++-- bootstrap/helpers/shared.php | 1 + 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/app/Models/Service.php b/app/Models/Service.php index 8440dee6a..ddf200946 100644 --- a/app/Models/Service.php +++ b/app/Models/Service.php @@ -408,6 +408,7 @@ public function parse(bool $isNew = false): Collection $savedService->save(); } } + data_forget($service, "environment.$variableName"); continue; } if ($value?->startsWith('$')) { @@ -422,10 +423,17 @@ public function parse(bool $isNew = false): Collection $forService = $value->afterLast('_'); $generatedValue = null; if ($command->value() === 'FQDN' || $command->value() === 'URL') { - $fqdn = generateFqdn($this->server, $containerName); + if (Str::lower($forService) === $serviceName) { + $fqdn = generateFqdn($this->server, $containerName); + } else { + $fqdn = generateFqdn($this->server, Str::lower($forService) . '-' . $this->uuid); + } if ($foundEnv) { $fqdn = data_get($foundEnv, 'value'); } else { + if ($command->value() === 'URL') { + $fqdn = Str::of($fqdn)->after('://')->value(); + } EnvironmentVariable::create([ 'key' => $key, 'value' => $fqdn, @@ -434,10 +442,11 @@ public function parse(bool $isNew = false): Collection 'is_preview' => false, ]); } - if (!$isDatabase) { - $savedService->fqdn = $fqdn; - $savedService->save(); + if ($command->value() === 'FQDN') { + $savedService->fqdn = $fqdn; + $savedService->save(); + } } } else { switch ($command) { diff --git a/bootstrap/helpers/services.php b/bootstrap/helpers/services.php index 2590049ad..762b83563 100644 --- a/bootstrap/helpers/services.php +++ b/bootstrap/helpers/services.php @@ -137,13 +137,18 @@ function updateCompose($resource) // Update FQDN $variableName = "SERVICE_FQDN_" . Str::of($resource->name)->upper(); - ray($variableName); $generatedEnv = EnvironmentVariable::where('service_id', $resource->service_id)->where('key', $variableName)->first(); if ($generatedEnv) { $generatedEnv->value = $resource->fqdn; $generatedEnv->save(); } - + $variableName = "SERVICE_URL_" . Str::of($resource->name)->upper(); + $generatedEnv = EnvironmentVariable::where('service_id', $resource->service_id)->where('key', $variableName)->first(); + if ($generatedEnv) { + $url = Str::of($resource->fqdn)->after('://'); + $generatedEnv->value = $url; + $generatedEnv->save(); + } $dockerComposeRaw = Yaml::dump($dockerCompose, 10, 2); $resource->service->docker_compose_raw = $dockerComposeRaw; diff --git a/bootstrap/helpers/shared.php b/bootstrap/helpers/shared.php index 01f9d55ae..eee61602d 100644 --- a/bootstrap/helpers/shared.php +++ b/bootstrap/helpers/shared.php @@ -14,6 +14,7 @@ use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Route;