Browse Source

Initial docker release image tooling

Signed-off-by: Erik Hollensbe <[email protected]>
Erik Hollensbe 4 years ago
parent
commit
ef784611b7
2 changed files with 52 additions and 0 deletions
  1. 22 0
      Dockerfile.release
  2. 30 0
      entrypoint.sh.release

+ 22 - 0
Dockerfile.release

@@ -0,0 +1,22 @@
+# vim: ft=dockerfile
+
+FROM debian:buster as stage
+
+ARG PACKAGE_BASEURL=https://download.zerotier.com/debian/buster/pool/main/z/zerotier-one/
+ARG ARCH=amd64
+ARG VERSION
+
+RUN apt-get update -qq && apt-get install curl -y
+RUN curl -sSL -o zerotier-one.deb "${PACKAGE_BASEURL}/zerotier-one_${VERSION}_${ARCH}.deb"
+
+FROM debian:buster
+
+COPY --from=stage zerotier-one.deb .
+
+RUN dpkg -i zerotier-one.deb && rm -f zerotier-one.deb
+RUN echo "${VERSION}" >/etc/zerotier-version
+
+COPY entrypoint.sh.release /entrypoint.sh
+RUN chmod 755 /entrypoint.sh
+
+CMD /entrypoint.sh

+ 30 - 0
entrypoint.sh.release

@@ -0,0 +1,30 @@
+#!/bin/sh
+
+grepzt() {
+  (find /proc -name exe | xargs -I{} readlink {}) 2>/dev/null | grep -q zerotier-one
+  return $?
+}
+
+echo "starting zerotier"
+setsid /usr/sbin/zerotier-one &
+
+while ! grepzt
+do
+  echo "zerotier hasn't started, waiting a second"
+  sleep 1
+done
+
+echo "joining networks"
+
+for i in "$@"
+do
+  echo "joining $i"
+
+  while ! zerotier-cli join "$i"
+  do 
+    echo "joining $i failed; trying again in 1s"
+    sleep 1
+  done
+done
+
+sleep infinity