fix: compose parser updated

This commit is contained in:
Andras Bacsai
2023-10-04 14:40:26 +02:00
parent 38e1f17edf
commit 5a90eed7ef
3 changed files with 21 additions and 6 deletions

View File

@@ -408,6 +408,7 @@ class Service extends BaseModel
$savedService->save(); $savedService->save();
} }
} }
data_forget($service, "environment.$variableName");
continue; continue;
} }
if ($value?->startsWith('$')) { if ($value?->startsWith('$')) {
@@ -422,10 +423,17 @@ class Service extends BaseModel
$forService = $value->afterLast('_'); $forService = $value->afterLast('_');
$generatedValue = null; $generatedValue = null;
if ($command->value() === 'FQDN' || $command->value() === 'URL') { if ($command->value() === 'FQDN' || $command->value() === 'URL') {
if (Str::lower($forService) === $serviceName) {
$fqdn = generateFqdn($this->server, $containerName); $fqdn = generateFqdn($this->server, $containerName);
} else {
$fqdn = generateFqdn($this->server, Str::lower($forService) . '-' . $this->uuid);
}
if ($foundEnv) { if ($foundEnv) {
$fqdn = data_get($foundEnv, 'value'); $fqdn = data_get($foundEnv, 'value');
} else { } else {
if ($command->value() === 'URL') {
$fqdn = Str::of($fqdn)->after('://')->value();
}
EnvironmentVariable::create([ EnvironmentVariable::create([
'key' => $key, 'key' => $key,
'value' => $fqdn, 'value' => $fqdn,
@@ -434,11 +442,12 @@ class Service extends BaseModel
'is_preview' => false, 'is_preview' => false,
]); ]);
} }
if (!$isDatabase) { if (!$isDatabase) {
if ($command->value() === 'FQDN') {
$savedService->fqdn = $fqdn; $savedService->fqdn = $fqdn;
$savedService->save(); $savedService->save();
} }
}
} else { } else {
switch ($command) { switch ($command) {
case 'PASSWORD': case 'PASSWORD':

View File

@@ -137,13 +137,18 @@ function updateCompose($resource)
// Update FQDN // Update FQDN
$variableName = "SERVICE_FQDN_" . Str::of($resource->name)->upper(); $variableName = "SERVICE_FQDN_" . Str::of($resource->name)->upper();
ray($variableName);
$generatedEnv = EnvironmentVariable::where('service_id', $resource->service_id)->where('key', $variableName)->first(); $generatedEnv = EnvironmentVariable::where('service_id', $resource->service_id)->where('key', $variableName)->first();
if ($generatedEnv) { if ($generatedEnv) {
$generatedEnv->value = $resource->fqdn; $generatedEnv->value = $resource->fqdn;
$generatedEnv->save(); $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); $dockerComposeRaw = Yaml::dump($dockerCompose, 10, 2);
$resource->service->docker_compose_raw = $dockerComposeRaw; $resource->service->docker_compose_raw = $dockerComposeRaw;

View File

@@ -14,6 +14,7 @@ use Illuminate\Mail\Message;
use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;