|
from fastapi import APIRouter, HTTPException |
|
from fastapi.responses import JSONResponse, HTMLResponse |
|
from docker_client import docker_client |
|
|
|
router = APIRouter() |
|
|
|
@router.get("/fetch/{container_name}") |
|
def stream_logs(container_name: str): |
|
if not docker_client: |
|
raise HTTPException(status_code=503, detail="Docker is not available") |
|
try: |
|
container = docker_client.containers.get(container_name) |
|
logs = container.logs(tail=100).decode() |
|
return HTMLResponse(f"<pre>{logs}</pre>") |
|
except Exception as e: |
|
return JSONResponse({"error": str(e)}, status_code=500) |
|
|