mirror of
https://github.com/coollabsio/coolify.git
synced 2026-03-11 08:55:47 +00:00
chore: add delete_all_dangling_server_docker_images
This commit is contained in:
parent
6a16e71310
commit
20fcd437c5
3 changed files with 39 additions and 2 deletions
15
app/Actions/Docker/DeleteAllDanglingServerDockerImages.php
Normal file
15
app/Actions/Docker/DeleteAllDanglingServerDockerImages.php
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Actions\Docker;
|
||||||
|
|
||||||
|
use Lorisleiva\Actions\Concerns\AsAction;
|
||||||
|
|
||||||
|
class DeleteAllDanglingServerDockerImages
|
||||||
|
{
|
||||||
|
use AsAction;
|
||||||
|
|
||||||
|
public static function run($server)
|
||||||
|
{
|
||||||
|
return instant_remote_process(["docker image prune --filter dangling=true -f"], $server);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace App\Http\Controllers\Api;
|
namespace App\Http\Controllers\Api;
|
||||||
|
|
||||||
|
use App\Actions\Docker\DeleteAllDanglingServerDockerImages;
|
||||||
use App\Actions\Docker\GetServerDockerImageDetails;
|
use App\Actions\Docker\GetServerDockerImageDetails;
|
||||||
use App\Actions\Docker\ListServerDockerImages;
|
use App\Actions\Docker\ListServerDockerImages;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
|
@ -30,7 +31,7 @@ class DockerController extends Controller
|
||||||
return ListServerDockerImages::run($server);
|
return ListServerDockerImages::run($server);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get_server_dcoker_image_details($server_uuid, $id)
|
public function get_server_docker_image_details($server_uuid, $id)
|
||||||
{
|
{
|
||||||
$query = Server::query();
|
$query = Server::query();
|
||||||
|
|
||||||
|
|
@ -47,4 +48,24 @@ class DockerController extends Controller
|
||||||
|
|
||||||
return response()->json(GetServerDockerImageDetails::run($server, $id));
|
return response()->json(GetServerDockerImageDetails::run($server, $id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function delete_all_dangling_server_docker_images($server_uuid)
|
||||||
|
{
|
||||||
|
$query = Server::query();
|
||||||
|
|
||||||
|
$server = $query->where('uuid', $server_uuid)->first();
|
||||||
|
if (!$server) {
|
||||||
|
return response()->json(['error' => 'server not found'], 404);
|
||||||
|
}
|
||||||
|
|
||||||
|
$isReachable = (bool) $server->settings->is_reachable;
|
||||||
|
// If the server is reachable, send the reachable notification if it was sent before
|
||||||
|
if ($isReachable !== true) {
|
||||||
|
return response()->json(['error' => 'server is not reachable.'], 403);
|
||||||
|
}
|
||||||
|
|
||||||
|
$message = DeleteAllDanglingServerDockerImages::run($server);
|
||||||
|
|
||||||
|
return response()->json(['message' => $message]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -131,7 +131,8 @@ Route::group([
|
||||||
Route::match(['get', 'post'], '/services/{uuid}/stop', [ServicesController::class, 'action_stop'])->middleware([IgnoreReadOnlyApiToken::class]);
|
Route::match(['get', 'post'], '/services/{uuid}/stop', [ServicesController::class, 'action_stop'])->middleware([IgnoreReadOnlyApiToken::class]);
|
||||||
|
|
||||||
Route::get('/docker/{server_uuid}/images', [DockerController::class, 'list_server_docker_images']);
|
Route::get('/docker/{server_uuid}/images', [DockerController::class, 'list_server_docker_images']);
|
||||||
Route::get('/docker/{server_uuid}/image/{id}', [DockerController::class, 'get_server_dcoker_image_details']);
|
Route::get('/docker/{server_uuid}/image/{id}', [DockerController::class, 'get_server_docker_image_details']);
|
||||||
|
Route::delete('/docker/{server_uuid}/images/delete/dangling', [DockerController::class, 'delete_all_dangling_server_docker_images']);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue