Update paths to dokku and docker

This commit is contained in:
Peter Stockings
2025-12-22 12:25:53 +11:00
parent 6b30681f2f
commit edd6bd2ce9

12
app.py
View File

@@ -6,6 +6,8 @@ from flask import Flask, jsonify, render_template
app = Flask(__name__)
DOKKU = "/usr/bin/dokku"
DOCKER = "/usr/bin/docker"
POLL_SECONDS = int(os.getenv("POLL_SECONDS", "10"))
SHOW_CONTAINERS = os.getenv("SHOW_CONTAINERS", "0") == "1"
@@ -13,7 +15,7 @@ def sh(cmd: list[str]) -> str:
return subprocess.check_output(cmd, stderr=subprocess.STDOUT, text=True).strip()
def dokku_apps() -> list[str]:
out = sh(["dokku", "apps:list"])
out = sh([DOKKU, "apps:list"])
lines = [l.strip() for l in out.splitlines()]
# Format:
# =====> My Apps
@@ -23,14 +25,14 @@ def dokku_apps() -> list[str]:
def dokku_urls(app_name: str) -> list[str]:
try:
out = sh(["dokku", "urls:report", app_name, "--urls"])
out = sh([DOKKU, "urls:report", app_name, "--urls"])
return [u.strip() for u in out.split() if u.strip()]
except Exception:
return []
def dokku_ps_report(app_name: str) -> dict:
try:
out = sh(["dokku", "ps:report", app_name])
out = sh([DOKKU, "ps:report", app_name])
# crude parse: "Key: value"
data = {}
for line in out.splitlines():
@@ -46,7 +48,7 @@ def docker_stats() -> dict:
Returns a mapping of container_name -> {cpu, mem_used, mem_limit, mem_pct}
"""
fmt = "{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.MemPerc}}"
out = sh(["docker", "stats", "--no-stream", "--format", fmt])
out = sh([DOCKER, "stats", "--no-stream", "--format", fmt])
stats = {}
for line in out.splitlines():
name, cpu, mem_usage, mem_pct = line.split("\t")
@@ -62,7 +64,7 @@ def docker_stats() -> dict:
def docker_ps() -> list[dict]:
fmt = "{{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}"
out = sh(["docker", "ps", "--format", fmt])
out = sh([DOCKER, "ps", "--format", fmt])
rows = []
for line in out.splitlines():
name, image, status, ports = line.split("\t")