diff --git a/Dockerfile.release b/Dockerfile.release new file mode 100644 index 000000000..7d1fb8b1e --- /dev/null +++ b/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 diff --git a/entrypoint.sh.release b/entrypoint.sh.release new file mode 100644 index 000000000..8b7bd5e29 --- /dev/null +++ b/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