From 89af2718682ce1b96a7c006aefa8e159debdde42 Mon Sep 17 00:00:00 2001 From: kenshin-samourai Date: Wed, 1 Jan 2020 17:49:14 +0100 Subject: [PATCH] force the explorer to wait for the local indexer --- docker/my-dojo/explorer/Dockerfile | 5 +++++ docker/my-dojo/explorer/restart.sh | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/docker/my-dojo/explorer/Dockerfile b/docker/my-dojo/explorer/Dockerfile index 081460a..b4c60b4 100644 --- a/docker/my-dojo/explorer/Dockerfile +++ b/docker/my-dojo/explorer/Dockerfile @@ -7,6 +7,11 @@ ENV EXPLORER_URL https://github.com/janoside/btc-rpc-explorer/archiv ENV EXPLORER_VERSION 1.1.5 +# Install netcat +RUN set -ex && \ + apt-get update && \ + apt-get install -y netcat + # Create logs and apps directory RUN mkdir -p "$LOGS_DIR" && \ chown -R node:node "$LOGS_DIR" && \ diff --git a/docker/my-dojo/explorer/restart.sh b/docker/my-dojo/explorer/restart.sh index 985debc..46a07d3 100644 --- a/docker/my-dojo/explorer/restart.sh +++ b/docker/my-dojo/explorer/restart.sh @@ -22,6 +22,23 @@ explorer_options+=(--rpc-blacklist "addnode,analyzepsbt,clearbanned,combinepsbt, if [ "$NODE_ACTIVE_INDEXER" == "local_indexer" ]; then explorer_options+=(--address-api electrumx) explorer_options+=(--electrumx-servers "tcp://$INDEXER_IP:$INDEXER_RPC_PORT") + + # Wait for the local indexer + timeout="720" + i="0" + while [ $i -lt $timeout ] + do + nc -z "$INDEXER_IP" "$INDEXER_RPC_PORT" > /dev/null + if [ $? -eq 0 ] ; then + break + fi + sleep 1 + i=$[$i+1] + done + if [ $i -eq $timeout ]; then + echo "Operation timed out" + exit 1 + fi fi node ./bin/cli.js "${explorer_options[@]}" > /data/logs/explorer-error.log 2> /data/logs/explorer-output.log