fix: only append docker network if service/app is running

This commit is contained in:
Andras Bacsai
2024-08-01 13:47:58 +02:00
parent fd855847ff
commit e6e48c5812
4 changed files with 24 additions and 2 deletions

View File

@@ -451,6 +451,11 @@ class Application extends BaseModel
); );
} }
public function isRunning()
{
return (bool) str($this->status)->startsWith('running');
}
public function isExited() public function isExited()
{ {
return (bool) str($this->status)->startsWith('exited'); return (bool) str($this->status)->startsWith('exited');

View File

@@ -35,6 +35,11 @@ class ApplicationPreview extends BaseModel
return self::where('application_id', $application_id)->where('pull_request_id', $pull_request_id)->firstOrFail(); return self::where('application_id', $application_id)->where('pull_request_id', $pull_request_id)->firstOrFail();
} }
public function isRunning()
{
return (bool) str($this->status)->startsWith('running');
}
public function application() public function application()
{ {
return $this->belongsTo(Application::class); return $this->belongsTo(Application::class);

View File

@@ -77,6 +77,11 @@ class Service extends BaseModel
} }
} }
public function isRunning()
{
return (bool) str($this->status())->contains('running');
}
public function isExited() public function isExited()
{ {
return (bool) str($this->status())->contains('exited'); return (bool) str($this->status())->contains('exited');

View File

@@ -36,16 +36,23 @@ function collectDockerNetworksByServer(Server $server)
} }
// Service networks // Service networks
foreach ($server->services()->get() as $service) { foreach ($server->services()->get() as $service) {
if ($service->isRunning()) {
$networks->push($service->networks()); $networks->push($service->networks());
} }
}
// Docker compose based apps // Docker compose based apps
$docker_compose_apps = $server->dockerComposeBasedApplications(); $docker_compose_apps = $server->dockerComposeBasedApplications();
foreach ($docker_compose_apps as $app) { foreach ($docker_compose_apps as $app) {
if ($app->isRunning()) {
$networks->push($app->uuid); $networks->push($app->uuid);
} }
}
// Docker compose based preview deployments // Docker compose based preview deployments
$docker_compose_previews = $server->dockerComposeBasedPreviewDeployments(); $docker_compose_previews = $server->dockerComposeBasedPreviewDeployments();
foreach ($docker_compose_previews as $preview) { foreach ($docker_compose_previews as $preview) {
if (! $preview->isRunning()) {
continue;
}
$pullRequestId = $preview->pull_request_id; $pullRequestId = $preview->pull_request_id;
$applicationId = $preview->application_id; $applicationId = $preview->application_id;
$application = Application::find($applicationId); $application = Application::find($applicationId);