Update paths to dokku and docker
This commit is contained in:
12
app.py
12
app.py
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user