fix: containerstatusjob

This commit is contained in:
Andras Bacsai 2023-09-26 15:07:33 +02:00
parent fabb97330a
commit 3eb628b773
8 changed files with 14 additions and 18 deletions

View File

@ -2,6 +2,7 @@
namespace App\Http\Livewire\Project\Service;
use App\Jobs\ContainerStatusJob;
use App\Models\Service;
use DanHarrin\LivewireRateLimiting\WithRateLimiting;
use Livewire\Component;
@ -23,6 +24,7 @@ class Index extends Component
public function manualRefreshStack() {
try {
$this->rateLimit(5);
dispatch_sync(new ContainerStatusJob($this->service->server));
$this->refreshStack();
} catch(\Throwable $e) {
return handleError($e, $this);

View File

@ -74,7 +74,7 @@ public function handle(): void
$containers = format_docker_command_output_to_json($containers);
$applications = $this->server->applications();
$databases = $this->server->databases();
$services = $this->server->services();
$services = $this->server->services()->get();
$previews = $this->server->previews();
$this->server->proxyType();
/// Check if proxy is running
@ -170,7 +170,7 @@ public function handle(): void
}
}
$exitedServices = collect([]);
foreach ($services->get() as $service) {
foreach ($services as $service) {
$apps = $service->applications()->get();
$dbs = $service->databases()->get();
foreach ($apps as $app) {

View File

@ -5,6 +5,7 @@
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Cache;
use Symfony\Component\Yaml\Yaml;
use Illuminate\Support\Str;
use Spatie\Url\Url;
@ -47,6 +48,12 @@ public function type()
return 'service';
}
public function documentation()
{
$services = Cache::get('services', []);
$service = data_get($services, Str::of($this->name)->beforeLast('-')->value, []);
return data_get($service, 'documentation', 'https://coolify.io/docs');
}
public function applications()
{
return $this->hasMany(ServiceApplication::class);
@ -137,8 +144,6 @@ public function parse(bool $isNew = false, ?Collection $requiredFqdns = null): C
if (!$requiredFqdns) {
$requiredFqdns = collect([]);
}
ray('parsing');
// ray()->clearAll();
if ($this->docker_compose_raw) {
try {
$yaml = Yaml::parse($this->docker_compose_raw);
@ -513,7 +518,6 @@ public function parse(bool $isNew = false, ?Collection $requiredFqdns = null): C
$number = 0;
}
$fqdn = getFqdnWithoutPort(data_get($fqdns, $number, $fqdns->first()));
ray($fqdns);
$environments = collect(data_get($service, 'environment'));
$environments = $environments->map(function ($envValue) use ($value, $fqdn) {
$envValue = Str::of($envValue)->replace($value, $fqdn);

View File

@ -14,12 +14,6 @@ public function type()
{
return 'service';
}
public function documentation()
{
$services = Cache::get('services', []);
$service = data_get($services, $this->name, []);
return data_get($service, 'documentation', 'https://coolify.io/docs');
}
public function service()
{
return $this->belongsTo(Service::class);

View File

@ -14,10 +14,6 @@ public function type()
{
return 'service';
}
public function documentation()
{
return data_get(Yaml::parse($this->service->docker_compose_raw), "services.{$this->name}.documentation", 'https://coolify.io/docs');
}
public function service()
{
return $this->belongsTo(Service::class);

View File

@ -8,7 +8,6 @@
@endif
<x-forms.button type="submit">Save</x-forms.button>
<x-forms.button isError wire:click='delete'>Delete</x-forms.button>
<a target="_blank" href="{{ $application->documentation() }}">Documentation <x-external-link /></a>
</div>
<div class="flex flex-col gap-2">
<div class="flex gap-2">

View File

@ -7,7 +7,6 @@
<h2>{{ Str::headline($database->name) }}</h2>
@endif
<x-forms.button type="submit">Save</x-forms.button>
<a target="_blank" href="{{ $database->documentation() }}">Documentation <x-external-link /></a>
</div>
<div class="flex flex-col gap-2">
<div class="flex gap-2">

View File

@ -2,6 +2,7 @@
<livewire:project.service.navbar :service="$service" :parameters="$parameters" :query="$query" />
<div class="flex h-full pt-6">
<div class="flex flex-col gap-4 min-w-fit">
<a target="_blank" href="{{ $service->documentation() }}">Documentation <x-external-link /></a>
<a :class="activeTab === 'service-stack' && 'text-white'"
@click.prevent="activeTab = 'service-stack'; window.location.hash = 'service-stack'"
href="#">Service Stack</a>
@ -21,6 +22,7 @@
<div class="flex gap-2">
<h2 class="pb-4">Configuration </h2>
<x-forms.button type="submit">Save</x-forms.button>
</div>
<div class="flex gap-2">
<x-forms.input id="service.name" required label="Service Name"
@ -40,7 +42,7 @@
'border-l border-dashed border-success' => Str::of(
$application->status)->contains(['running']),
'border-l border-dashed border-warning' => Str::of(
$application->status)->contains(['restarting']),
$application->status)->contains(['starting']),
'flex flex-col justify-center box',
])
href="{{ route('project.service.show', [...$parameters, 'service_name' => $application->name]) }}">