From 6f9c38783da3262e30870f763263b7523cb6a74b Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Mon, 11 Oct 2021 12:28:20 +0900 Subject: [PATCH] Add debugging output + build script --- Dockerfile | 3 +-- build.sh | 11 +++++++++++ entrypoint.sh | 18 ++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100755 build.sh diff --git a/Dockerfile b/Dockerfile index d6bea65..f3e825f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,6 @@ FROM nginx:1.21.3-alpine -RUN apk update -RUN apk add certbot +RUN apk update && apk add certbot bind-tools COPY entrypoint.sh / CMD ["/entrypoint.sh"] diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..1970c31 --- /dev/null +++ b/build.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +docker build -t ungleich-certbot . + +while [ $# -ge 1 ]; do + tag=$1; shift + docker tag ungleich-certbot:latest ungleich/ungleich-certbot:${tag} + docker push ungleich/ungleich-certbot:${tag} +done diff --git a/entrypoint.sh b/entrypoint.sh index 05dc42a..5cc92e9 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -5,6 +5,24 @@ if [ -z "$DOMAIN" -o -z "$EMAIL" ]; then exit 1 fi +# Check that the domain exists, if not wait for it +ipv6_addr="" +ipv4_addr="" + +while [ -z "$ipv6_addr" -a -z "$ipv4_addr" ]; do + echo "Trying to resolve $DOMAIN via DNS ..." + # Resolve for IPv6 and for IPv6 + ipv6_addr=$(dig +short "$DOMAIN" aaaa) + ipv4_addr=$(dig +short "$DOMAIN" a) + + if [ -z -z "$ipv6_addr" -a -z "$ipv4_addr" ]; then + echo "Resolving $DOMAIN failed, waiting 5 seconds before retrying ..." + sleep 5 + else + echo "Resolved domain $DOMAIN: ipv6: $ipv6_addr ipv4: $ipv4_addr" + fi +done + if [ "$STAGING" = no ]; then STAGING="" else