Browse Source

Add container health details to status

Jason Fischer 2 years ago
parent
commit
07385dc91e
2 changed files with 17 additions and 0 deletions
  1. 16 0
      src/components/services/status.jsx
  2. 1 0
      src/pages/api/docker/status/[...service].js

+ 16 - 0
src/components/services/status.jsx

@@ -13,6 +13,22 @@ export default function Status({ service }) {
   }
   }
 
 
   if (data && data.status === "running") {
   if (data && data.status === "running") {
+    if (data.health === "starting") {
+      return (
+        <div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={data.health}>
+          <div className="text-[8px] font-bold text-blue-500/80 uppercase">{data.health}</div>
+        </div>
+      );
+    }
+
+    if (data.health === "unhealthy") {
+      return (
+        <div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={data.health}>
+          <div className="text-[8px] font-bold text-orange-400/50 dark:text-orange-400/80 uppercase">{data.health}</div>
+        </div>
+      );
+    }
+
     return (
     return (
       <div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={data.status}>
       <div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={data.status}>
         <div className="text-[8px] font-bold text-emerald-500/80 uppercase">{data.status}</div>
         <div className="text-[8px] font-bold text-emerald-500/80 uppercase">{data.status}</div>

+ 1 - 0
src/pages/api/docker/status/[...service].js

@@ -40,6 +40,7 @@ export default async function handler(req, res) {
 
 
     return res.status(200).json({
     return res.status(200).json({
       status: info.State.Status,
       status: info.State.Status,
+      health: info.State.Health?.Status
     });
     });
   } catch {
   } catch {
     return res.status(500).send({
     return res.status(500).send({