Merge pull request #1558 from coollabsio/next
fix: get swarm service logs
This commit is contained in:
commit
6cbd61ac6c
@ -73,9 +73,17 @@ class GetLogs extends Component
|
|||||||
if (!$refresh && $this->resource?->getMorphClass() === 'App\Models\Service') return;
|
if (!$refresh && $this->resource?->getMorphClass() === 'App\Models\Service') return;
|
||||||
if ($this->container) {
|
if ($this->container) {
|
||||||
if ($this->showTimeStamps) {
|
if ($this->showTimeStamps) {
|
||||||
$sshCommand = generateSshCommand($this->server, "docker logs -n {$this->numberOfLines} -t {$this->container}");
|
if ($this->server->isSwarm()) {
|
||||||
|
$sshCommand = generateSshCommand($this->server, "docker service logs -n {$this->numberOfLines} -t {$this->container}");
|
||||||
|
} else {
|
||||||
|
$sshCommand = generateSshCommand($this->server, "docker logs -n {$this->numberOfLines} -t {$this->container}");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$sshCommand = generateSshCommand($this->server, "docker logs -n {$this->numberOfLines} {$this->container}");
|
if ($this->server->isSwarm()) {
|
||||||
|
$sshCommand = generateSshCommand($this->server, "docker service logs -n {$this->numberOfLines} {$this->container}");
|
||||||
|
} else {
|
||||||
|
$sshCommand = generateSshCommand($this->server, "docker logs -n {$this->numberOfLines} {$this->container}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ($refresh) {
|
if ($refresh) {
|
||||||
$this->outputs = '';
|
$this->outputs = '';
|
||||||
|
@ -34,7 +34,15 @@ class Logs extends Component
|
|||||||
$this->resource = Application::where('uuid', $this->parameters['application_uuid'])->firstOrFail();
|
$this->resource = Application::where('uuid', $this->parameters['application_uuid'])->firstOrFail();
|
||||||
$this->status = $this->resource->status;
|
$this->status = $this->resource->status;
|
||||||
$this->server = $this->resource->destination->server;
|
$this->server = $this->resource->destination->server;
|
||||||
$containers = getCurrentApplicationContainerStatus($this->server, $this->resource->id, 0);
|
if ($this->server->isSwarm()) {
|
||||||
|
$containers = collect([
|
||||||
|
[
|
||||||
|
'Names' => $this->resource->uuid . '_' . $this->resource->uuid,
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
$containers = getCurrentApplicationContainerStatus($this->server, $this->resource->id, 0);
|
||||||
|
}
|
||||||
if ($containers->count() > 0) {
|
if ($containers->count() > 0) {
|
||||||
$containers->each(function ($container) {
|
$containers->each(function ($container) {
|
||||||
$this->containers->push(str_replace('/', '', $container['Names']));
|
$this->containers->push(str_replace('/', '', $container['Names']));
|
||||||
@ -62,7 +70,7 @@ class Logs extends Component
|
|||||||
$this->status = $this->resource->status;
|
$this->status = $this->resource->status;
|
||||||
$this->server = $this->resource->destination->server;
|
$this->server = $this->resource->destination->server;
|
||||||
$this->container = $this->resource->uuid;
|
$this->container = $this->resource->uuid;
|
||||||
if (str(data_get($this,'resource.status'))->startsWith('running')) {
|
if (str(data_get($this, 'resource.status'))->startsWith('running')) {
|
||||||
$this->containers->push($this->container);
|
$this->containers->push($this->container);
|
||||||
}
|
}
|
||||||
} else if (data_get($this->parameters, 'service_uuid')) {
|
} else if (data_get($this->parameters, 'service_uuid')) {
|
||||||
|
@ -14,20 +14,23 @@ use Visus\Cuid2\Cuid2;
|
|||||||
function getCurrentApplicationContainerStatus(Server $server, int $id, ?int $pullRequestId = null): Collection
|
function getCurrentApplicationContainerStatus(Server $server, int $id, ?int $pullRequestId = null): Collection
|
||||||
{
|
{
|
||||||
$containers = collect([]);
|
$containers = collect([]);
|
||||||
$containers = instant_remote_process(["docker ps -a --filter='label=coolify.applicationId={$id}' --format '{{json .}}' "], $server);
|
if (!$server->isSwarm()) {
|
||||||
$containers = format_docker_command_output_to_json($containers);
|
$containers = instant_remote_process(["docker ps -a --filter='label=coolify.applicationId={$id}' --format '{{json .}}' "], $server);
|
||||||
$containers = $containers->map(function ($container) use ($pullRequestId) {
|
$containers = format_docker_command_output_to_json($containers);
|
||||||
$labels = data_get($container, 'Labels');
|
$containers = $containers->map(function ($container) use ($pullRequestId) {
|
||||||
if (!str($labels)->contains("coolify.pullRequestId=")) {
|
$labels = data_get($container, 'Labels');
|
||||||
data_set($container, 'Labels', $labels . ",coolify.pullRequestId={$pullRequestId}");
|
if (!str($labels)->contains("coolify.pullRequestId=")) {
|
||||||
return $container;
|
data_set($container, 'Labels', $labels . ",coolify.pullRequestId={$pullRequestId}");
|
||||||
}
|
return $container;
|
||||||
if (str($labels)->contains("coolify.pullRequestId=$pullRequestId")) {
|
}
|
||||||
return $container;
|
if (str($labels)->contains("coolify.pullRequestId=$pullRequestId")) {
|
||||||
}
|
return $container;
|
||||||
return null;
|
}
|
||||||
});
|
return null;
|
||||||
$containers = $containers->filter();
|
});
|
||||||
|
$containers = $containers->filter();
|
||||||
|
return $containers;
|
||||||
|
}
|
||||||
return $containers;
|
return $containers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ return [
|
|||||||
|
|
||||||
// The release version of your application
|
// The release version of your application
|
||||||
// Example with dynamic git hash: trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD'))
|
// Example with dynamic git hash: trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD'))
|
||||||
'release' => '4.0.0-beta.166',
|
'release' => '4.0.0-beta.167',
|
||||||
// When left empty or `null` the Laravel environment will be used
|
// When left empty or `null` the Laravel environment will be used
|
||||||
'environment' => config('app.env'),
|
'environment' => config('app.env'),
|
||||||
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
return '4.0.0-beta.166';
|
return '4.0.0-beta.167';
|
||||||
|
@ -3,10 +3,12 @@
|
|||||||
href="{{ route('project.application.configuration', $parameters) }}">
|
href="{{ route('project.application.configuration', $parameters) }}">
|
||||||
<button>Configuration</button>
|
<button>Configuration</button>
|
||||||
</a>
|
</a>
|
||||||
|
@if(!$application->destination->server->isSwarm())
|
||||||
<a wire:navigate class="{{ request()->routeIs('project.application.command') ? 'text-white' : '' }}"
|
<a wire:navigate class="{{ request()->routeIs('project.application.command') ? 'text-white' : '' }}"
|
||||||
href="{{ route('project.application.command', $parameters) }}">
|
href="{{ route('project.application.command', $parameters) }}">
|
||||||
<button>Execute Command</button>
|
<button>Execute Command</button>
|
||||||
</a>
|
</a>
|
||||||
|
@endif
|
||||||
<a wire:navigate class="{{ request()->routeIs('project.application.logs') ? 'text-white' : '' }}"
|
<a wire:navigate class="{{ request()->routeIs('project.application.logs') ? 'text-white' : '' }}"
|
||||||
href="{{ route('project.application.logs', $parameters) }}">
|
href="{{ route('project.application.logs', $parameters) }}">
|
||||||
<button>Logs</button>
|
<button>Logs</button>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
"version": "3.12.36"
|
"version": "3.12.36"
|
||||||
},
|
},
|
||||||
"v4": {
|
"v4": {
|
||||||
"version": "4.0.0-beta.166"
|
"version": "4.0.0-beta.167"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user