Add Docker container discovery with stats, image display, and CPU usage bars
All checks were successful
Build-Publish / build (linux/amd64) (push) Successful in 4s
Build-Publish / build (linux/arm64) (push) Successful in 12s
Build-Publish / create-manifest (push) Successful in 2s
Build-Publish / publish-template (push) Successful in 15s

This commit is contained in:
j
2026-03-08 14:06:23 +13:00
parent d675d282b6
commit 4637e60ec4
4 changed files with 56 additions and 3 deletions

View File

@@ -279,4 +279,31 @@ if command -v virsh &>/dev/null; then
done
fi
# Docker containers
if command -v docker &>/dev/null; then
_sudo docker ps -a --format '{{.Names}}\t{{.State}}\t{{.Image}}\t{{.Status}}' 2>/dev/null | while IFS=$'\t' read -r name state image status_text; do
[ -z "$name" ] && continue
echo "[container:docker-${name}]"
echo "type=docker"
echo "platform=docker"
echo "name=$name"
echo "status=$state"
echo "image=$image"
echo "status_text=$status_text"
if [ "$state" = "running" ]; then
# Get IP from docker inspect
docker_ip=$(_sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "$name" 2>/dev/null)
[ -n "$docker_ip" ] && echo "ip=$docker_ip"
# Get memory/cpu stats (one-shot, no stream)
stats=$(_sudo docker stats --no-stream --format '{{.MemUsage}}\t{{.MemPerc}}\t{{.CPUPerc}}' "$name" 2>/dev/null)
if [ -n "$stats" ]; then
mem_pct=$(echo "$stats" | cut -f2 | tr -d '%')
cpu_pct=$(echo "$stats" | cut -f3 | tr -d '%')
echo "mem_percent=${mem_pct}"
echo "cpu_percent=${cpu_pct}"
fi
fi
done
fi
echo "[end]"