--ADDED DOCKER API
This commit is contained in:
george committed 2026-10-01 13:22:28 +05:30
1 parent c77806b367
commit c3ca0689f0
3 files changed
+77 -10

No files matched your search

+13
View File
@@ -11,3 +11,16 @@ tail -f server.log
ps aux | grep main.py
kill <PID>
MAKE A DEDICATED USER FOR ACCESSING DOCKER
sudo useradd --system --shell /usr/sbin/nologin fastapi-docker
sudo usermod -aG docker fastapi-docker
sudo setfacl -m u:fastapi-docker:x /home/george
sudo setfacl -m u:fastapi-docker:x /home/george/Desktop
sudo setfacl -m u:fastapi-docker:x /home/george/Desktop/PROJECT26
RUN APP
(venv) george@george-Lenovo-ideapad-320-15IKB:~/Desktop/PROJECT26/pgMultiMasterCPUmemoryAgent$ sudo -u fastapi-docker /home/george/Desktop/PROJECT26/psqlDB/venv/bin/python3 /home/george/Desktop/PROJECT26/pgMultiMasterCPUmemoryAgent/main.py
+46 -1
View File
@@ -1,6 +1,8 @@
import psutil
import asyncio
from fastapi import FastAPI, WebSocket, WebSocketDisconnect
from fastapi import FastAPI, WebSocket, WebSocketDisconnect,HTTPException
import docker
app = FastAPI()
@@ -84,6 +86,49 @@ async def hardware_status_monitor(websocket: WebSocket):
print("Hardware monitoring WebSocket disconnected")
# GET DOCKER CONTAINERS
@app.get("/docker/containers")
def get_containers():
try:
# Connect to the Docker daemon running on this VM
client = docker.from_env()
# all=True means:
# running + stopped + exited containers
containers = client.containers.list(all=True)
result = []
for container in containers:
result.append({
"id": container.short_id,
"name": container.name,
"image": (
container.image.tags[0]
if container.image.tags
else container.image.short_id
),
"status": container.status,
"ports": container.attrs[
"NetworkSettings"
]["Ports"]
})
return {
"count": len(result),
"containers": result
}
except docker.errors.DockerException as e:
raise HTTPException(
status_code=500,
detail=f"Docker error: {str(e)}"
)
if __name__ == "__main__":
import uvicorn
+18 -9
View File
@@ -1,21 +1,30 @@
alembic==1.19.2
annotated-doc==0.0.5
annotated-types==0.8.0
anyio==4.15.1
anyio==4.14.2
certifi==2026.7.22
charset-normalizer==3.5.2
click==8.5.0
exceptiongroup==1.3.1
docker==7.2.0
fastapi==0.141.1
greenlet==3.5.5
h11==0.16.0
httptools==0.8.0
idna==3.20
idna==3.19
Mako==1.4.1
MarkupSafe==3.0.3
psutil==7.2.2
psycopg==3.3.4
psycopg-binary==3.3.4
psycopg2-binary==2.9.12
pydantic==2.13.5
pydantic_core==2.46.5
PyJWT==2.13.0
python-dotenv==1.2.3
PyYAML==6.0.3
requests==2.34.2
SQLAlchemy==2.0.52
starlette==1.6.0
typing-inspection==0.4.4
typing_extensions==4.16.0
uvicorn==0.53.0
uvloop==0.22.1
watchfiles==1.3.0
websockets==16.1.1
urllib3==2.8.0
uvicorn==0.52.4
websockets==17.1