""" API endpoints для управления Docker образами Автор: Сергей Антропов Сайт: https://devops.org.ru """ from fastapi import APIRouter, Request, HTTPException from fastapi.responses import HTMLResponse, JSONResponse from fastapi.templating import Jinja2Templates from pathlib import Path from typing import List, Dict from app.core.config import settings from app.core.docker_client import DockerClient router = APIRouter() templates_path = Path(__file__).parent.parent.parent.parent / "templates" templates = Jinja2Templates(directory=str(templates_path)) def get_docker_client(): """Получение Docker клиента с обработкой ошибок""" try: return DockerClient() except Exception: return None @router.get("/docker", response_class=HTMLResponse) async def docker_page(request: Request): """Страница управления Docker образами""" docker_client = get_docker_client() images = [] if docker_client: try: images = docker_client.list_images() except Exception: pass return templates.TemplateResponse( "pages/docker/index.html", { "request": request, "images": images } ) @router.get("/api/v1/docker/images", response_class=HTMLResponse) async def get_docker_images(): """API endpoint для получения списка Docker образов""" docker_client = get_docker_client() if not docker_client: return """
/var/run/docker.sock
Docker образы не найдены
| ID | Теги | Размер | Создан |
|---|---|---|---|
{img_id} | {tags} | {size_str} | {created_str} |