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) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            CleanupDocker::run($this->server, false);
 | 
			
		||||
            $this->latestVersion = get_latest_version_of_coolify();
 | 
			
		||||
            $this->currentVersion = config('version');
 | 
			
		||||
            ray('latest version:' . $this->latestVersion . " current version: " . $this->currentVersion . ' force: ' . $force);
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs;
 | 
			
		||||
 | 
			
		||||
use App\Actions\Server\CleanupDocker;
 | 
			
		||||
use App\Models\Server;
 | 
			
		||||
use Illuminate\Bus\Queueable;
 | 
			
		||||
use Illuminate\Contracts\Queue\ShouldBeEncrypted;
 | 
			
		||||
@@ -43,9 +44,7 @@ class DockerCleanupJob implements ShouldQueue, ShouldBeEncrypted
 | 
			
		||||
            ray('Usage before: ' . $this->usageBefore);
 | 
			
		||||
            if ($this->usageBefore >= $this->server->settings->cleanup_after_percentage) {
 | 
			
		||||
                ray('Cleaning up ' . $this->server->name);
 | 
			
		||||
                instant_remote_process(['docker image prune -af'], $this->server, false);
 | 
			
		||||
                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);
 | 
			
		||||
                CleanupDocker::run($this->server);
 | 
			
		||||
                $usageAfter = $this->server->getDiskUsage();
 | 
			
		||||
                if ($usageAfter <  $this->usageBefore) {
 | 
			
		||||
                    ray('Saved ' . ($this->usageBefore - $usageAfter) . '% disk space on ' . $this->server->name);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user