diff --git a/scripts/docker/hub/Dockerfile b/scripts/docker/hub/Dockerfile index 53fa092ef9e..35d1b05705e 100644 --- a/scripts/docker/hub/Dockerfile +++ b/scripts/docker/hub/Dockerfile @@ -5,7 +5,7 @@ ARG TARGET ENV TARGET ${TARGET} # install tools and dependencies -RUN apt update && apt install -y --no-install-recommends openssl libudev-dev file +RUN apt update && apt install -y --no-install-recommends openssl libudev-dev file curl jq # show backtraces ENV RUST_BACKTRACE 1 @@ -31,6 +31,8 @@ COPY artifacts/x86_64-unknown-linux-gnu/$TARGET ./bin/$TARGET RUN echo "#!/bin/bash \n ${TARGET} \$@" > ./entrypoint.sh RUN chmod +x ./entrypoint.sh +ADD check_sync.sh /check_sync.sh + # setup ENTRYPOINT EXPOSE 5001 8080 8082 8083 8545 8546 8180 30303/tcp 30303/udp ENTRYPOINT ["./entrypoint.sh"] diff --git a/scripts/docker/hub/check_sync.sh b/scripts/docker/hub/check_sync.sh new file mode 100755 index 00000000000..4640a05386a --- /dev/null +++ b/scripts/docker/hub/check_sync.sh @@ -0,0 +1,13 @@ +#!/bin/bash +# checks if parity has a fully synced blockchain + +ETH_SYNCING=$(curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://localhost:8545 -H 'Content-Type: application/json') +RESULT=$(echo "$ETH_SYNCING" | jq -r .result) + +if [ "$RESULT" == "false" ]; then + echo "Parity is ready to start accepting traffic" + exit 0 +else + echo "Parity is still syncing the blockchain" + exit 1 +fi