remove dangling images

This commit is contained in:
Andras Bacsai 2023-04-28 09:00:47 +02:00
parent befc51beec
commit a7c4e06bc3
3 changed files with 46 additions and 2 deletions

View File

@ -3,6 +3,7 @@
namespace App\Console; namespace App\Console;
use App\Jobs\ContainerStatusJob; use App\Jobs\ContainerStatusJob;
use App\Jobs\DockerCleanupDanglingImagesJob;
use Illuminate\Console\Scheduling\Schedule; use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel; use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
@ -13,7 +14,8 @@ class Kernel extends ConsoleKernel
*/ */
protected function schedule(Schedule $schedule): void protected function schedule(Schedule $schedule): void
{ {
$schedule->job(new ContainerStatusJob)->everyMinute(); $schedule->job(new ContainerStatusJob)->everyFiveMinutes();
$schedule->job(new DockerCleanupDanglingImagesJob)->everyMinute();
} }
/** /**
@ -21,7 +23,7 @@ protected function schedule(Schedule $schedule): void
*/ */
protected function commands(): void protected function commands(): void
{ {
$this->load(__DIR__.'/Commands'); $this->load(__DIR__ . '/Commands');
require base_path('routes/console.php'); require base_path('routes/console.php');
} }

View File

@ -0,0 +1,36 @@
<?php
namespace App\Jobs;
use App\Models\Server;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class DockerCleanupDanglingImagesJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Create a new job instance.
*/
public function __construct()
{
//
}
/**
* Execute the job.
*/
public function handle(): void
{
$servers = Server::all();
foreach ($servers as $server) {
runRemoteCommandSync($server, ['docker image prune -f']);
}
}
}

View File

@ -23,6 +23,12 @@ function help {
function queue { function queue {
bash vendor/bin/spin exec -u webuser coolify php artisan queue:listen bash vendor/bin/spin exec -u webuser coolify php artisan queue:listen
} }
function schedule {
bash vendor/bin/spin exec -u webuser coolify php artisan schedule:work
}
function schedule-run {
bash vendor/bin/spin exec -u webuser coolify php artisan schedule:run
}
function reset-db { function reset-db {
bash vendor/bin/spin exec -u webuser coolify php artisan migrate:fresh --seed bash vendor/bin/spin exec -u webuser coolify php artisan migrate:fresh --seed
} }