mirror of
https://github.com/tiennm99/coolify.git
synced 2026-04-17 17:21:04 +00:00
Fix restart counter persistence and add crash loop example
- Move restart counter reset from Livewire to ApplicationDeploymentJob to prevent race conditions with GetContainersStatus - Remove artificial restart_type=manual tracking (never used in codebase) - Add Crash Loop Example in seeder for testing restart tracking UI 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -3980,6 +3980,15 @@ COPY ./nginx.conf /etc/nginx/conf.d/default.conf");
|
|||||||
*/
|
*/
|
||||||
private function handleSuccessfulDeployment(): void
|
private function handleSuccessfulDeployment(): void
|
||||||
{
|
{
|
||||||
|
// Reset restart count after successful deployment
|
||||||
|
// This is done here (not in Livewire) to avoid race conditions
|
||||||
|
// with GetContainersStatus reading old container restart counts
|
||||||
|
$this->application->update([
|
||||||
|
'restart_count' => 0,
|
||||||
|
'last_restart_at' => null,
|
||||||
|
'last_restart_type' => null,
|
||||||
|
]);
|
||||||
|
|
||||||
event(new ApplicationConfigurationChanged($this->application->team()->id));
|
event(new ApplicationConfigurationChanged($this->application->team()->id));
|
||||||
|
|
||||||
if (! $this->only_this_server) {
|
if (! $this->only_this_server) {
|
||||||
|
|||||||
@@ -106,13 +106,6 @@ class Heading extends Component
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reset restart count on successful deployment
|
|
||||||
$this->application->update([
|
|
||||||
'restart_count' => 0,
|
|
||||||
'last_restart_at' => null,
|
|
||||||
'last_restart_type' => null,
|
|
||||||
]);
|
|
||||||
|
|
||||||
return $this->redirectRoute('project.application.deployment.show', [
|
return $this->redirectRoute('project.application.deployment.show', [
|
||||||
'project_uuid' => $this->parameters['project_uuid'],
|
'project_uuid' => $this->parameters['project_uuid'],
|
||||||
'application_uuid' => $this->parameters['application_uuid'],
|
'application_uuid' => $this->parameters['application_uuid'],
|
||||||
@@ -157,13 +150,6 @@ class Heading extends Component
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reset restart count on manual restart
|
|
||||||
$this->application->update([
|
|
||||||
'restart_count' => 0,
|
|
||||||
'last_restart_at' => now(),
|
|
||||||
'last_restart_type' => 'manual',
|
|
||||||
]);
|
|
||||||
|
|
||||||
return $this->redirectRoute('project.application.deployment.show', [
|
return $this->redirectRoute('project.application.deployment.show', [
|
||||||
'project_uuid' => $this->parameters['project_uuid'],
|
'project_uuid' => $this->parameters['project_uuid'],
|
||||||
'application_uuid' => $this->parameters['application_uuid'],
|
'application_uuid' => $this->parameters['application_uuid'],
|
||||||
|
|||||||
@@ -75,6 +75,22 @@ class ApplicationSeeder extends Seeder
|
|||||||
'dockerfile' => 'FROM nginx
|
'dockerfile' => 'FROM nginx
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
CMD ["nginx", "-g", "daemon off;"]
|
CMD ["nginx", "-g", "daemon off;"]
|
||||||
|
',
|
||||||
|
]);
|
||||||
|
Application::create([
|
||||||
|
'name' => 'Crash Loop Example',
|
||||||
|
'git_repository' => 'coollabsio/coolify',
|
||||||
|
'git_branch' => 'v4.x',
|
||||||
|
'git_commit_sha' => 'HEAD',
|
||||||
|
'build_pack' => 'dockerfile',
|
||||||
|
'ports_exposes' => '80',
|
||||||
|
'environment_id' => 1,
|
||||||
|
'destination_id' => 0,
|
||||||
|
'destination_type' => StandaloneDocker::class,
|
||||||
|
'source_id' => 0,
|
||||||
|
'source_type' => GithubApp::class,
|
||||||
|
'dockerfile' => 'FROM alpine
|
||||||
|
CMD ["sh", "-c", "echo Crashing in 5 seconds... && sleep 5 && exit 1"]
|
||||||
',
|
',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user