From d52ebaa41282894fbbbd03f9a5f904b2f7e88d17 Mon Sep 17 00:00:00 2001
From: Erik Hollensbe <git@hollensbe.org>
Date: Wed, 23 Mar 2022 18:08:46 -0700
Subject: [PATCH] HEALTHCHECK operation

Signed-off-by: Erik Hollensbe <git@hollensbe.org>
---
 Dockerfile.release    |  2 ++
 entrypoint.sh.release | 15 ++++++++-------
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/Dockerfile.release b/Dockerfile.release
index 52ef4d803..ca05f171a 100644
--- a/Dockerfile.release
+++ b/Dockerfile.release
@@ -22,5 +22,7 @@ RUN rm -rf /var/lib/zerotier-one
 COPY entrypoint.sh.release /entrypoint.sh
 RUN chmod 755 /entrypoint.sh
 
+HEALTHCHECK CMD bash /healthcheck.sh
+
 CMD []
 ENTRYPOINT ["/entrypoint.sh"]
diff --git a/entrypoint.sh.release b/entrypoint.sh.release
index dbbd3683f..853eb9ad7 100644
--- a/entrypoint.sh.release
+++ b/entrypoint.sh.release
@@ -65,15 +65,16 @@ do
   sleep 1
 done
 
-echo "Ensuring status for networks: $@"
+echo "Writing healthcheck for networks: $@"
 
-for i in "$@"
+cat >/healthcheck.sh <<EOF
+#!/bin/bash
+for i in $@
 do
-  while [ "$(zerotier-cli get $i status)" != "OK" ]
-  do 
-    echo "joining $i failed (are they added in central?); trying again in 1s"
-    sleep 1
-  done
+  [ "\$(zerotier-cli get \$i status)" = "OK" ] || exit 1
 done
+EOF
+
+chmod +x /healthcheck.sh
 
 sleep infinity