fix: cleanup docker stuffs before upgrading
This commit is contained in:
		
							
								
								
									
										23
									
								
								app/Actions/Server/CleanupDocker.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								app/Actions/Server/CleanupDocker.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace App\Actions\Server;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Lorisleiva\Actions\Concerns\AsAction;
 | 
				
			||||||
 | 
					use App\Models\Server;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CleanupDocker
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    use AsAction;
 | 
				
			||||||
 | 
					    public function handle(Server $server, bool $force = true)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if ($force) {
 | 
				
			||||||
 | 
					            instant_remote_process(['docker image prune -af'], $server, false);
 | 
				
			||||||
 | 
					            instant_remote_process(['docker container prune -f --filter "label=coolify.managed=true"'], $server, false);
 | 
				
			||||||
 | 
					            instant_remote_process(['docker builder prune -af'], $server, false);
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            instant_remote_process(['docker image prune -f'], $server, false);
 | 
				
			||||||
 | 
					            instant_remote_process(['docker container prune -f --filter "label=coolify.managed=true"'], $server, false);
 | 
				
			||||||
 | 
					            instant_remote_process(['docker builder prune -f'], $server, false);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -22,6 +22,7 @@ class UpdateCoolify
 | 
				
			|||||||
            if (!$this->server) {
 | 
					            if (!$this->server) {
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            CleanupDocker::run($this->server, false);
 | 
				
			||||||
            $this->latestVersion = get_latest_version_of_coolify();
 | 
					            $this->latestVersion = get_latest_version_of_coolify();
 | 
				
			||||||
            $this->currentVersion = config('version');
 | 
					            $this->currentVersion = config('version');
 | 
				
			||||||
            ray('latest version:' . $this->latestVersion . " current version: " . $this->currentVersion . ' force: ' . $force);
 | 
					            ray('latest version:' . $this->latestVersion . " current version: " . $this->currentVersion . ' force: ' . $force);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,6 +2,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace App\Jobs;
 | 
					namespace App\Jobs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use App\Actions\Server\CleanupDocker;
 | 
				
			||||||
use App\Models\Server;
 | 
					use App\Models\Server;
 | 
				
			||||||
use Illuminate\Bus\Queueable;
 | 
					use Illuminate\Bus\Queueable;
 | 
				
			||||||
use Illuminate\Contracts\Queue\ShouldBeEncrypted;
 | 
					use Illuminate\Contracts\Queue\ShouldBeEncrypted;
 | 
				
			||||||
@@ -43,9 +44,7 @@ class DockerCleanupJob implements ShouldQueue, ShouldBeEncrypted
 | 
				
			|||||||
            ray('Usage before: ' . $this->usageBefore);
 | 
					            ray('Usage before: ' . $this->usageBefore);
 | 
				
			||||||
            if ($this->usageBefore >= $this->server->settings->cleanup_after_percentage) {
 | 
					            if ($this->usageBefore >= $this->server->settings->cleanup_after_percentage) {
 | 
				
			||||||
                ray('Cleaning up ' . $this->server->name);
 | 
					                ray('Cleaning up ' . $this->server->name);
 | 
				
			||||||
                instant_remote_process(['docker image prune -af'], $this->server, false);
 | 
					                CleanupDocker::run($this->server);
 | 
				
			||||||
                instant_remote_process(['docker container prune -f --filter "label=coolify.managed=true"'], $this->server, false);
 | 
					 | 
				
			||||||
                instant_remote_process(['docker builder prune -af'], $this->server, false);
 | 
					 | 
				
			||||||
                $usageAfter = $this->server->getDiskUsage();
 | 
					                $usageAfter = $this->server->getDiskUsage();
 | 
				
			||||||
                if ($usageAfter <  $this->usageBefore) {
 | 
					                if ($usageAfter <  $this->usageBefore) {
 | 
				
			||||||
                    ray('Saved ' . ($this->usageBefore - $usageAfter) . '% disk space on ' . $this->server->name);
 | 
					                    ray('Saved ' . ($this->usageBefore - $usageAfter) . '% disk space on ' . $this->server->name);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user