diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh index d7b1abc..e723333 100644 --- a/docker/docker-entrypoint.sh +++ b/docker/docker-entrypoint.sh @@ -21,9 +21,34 @@ ETHPROVIDER=${CRAWLER_ETHPROVIDER:-NULL} MARKETPLACEADDRESS=${CRAWLER_MARKETPLACEADDRESS:-NULL} REQUESTCHECKDELAY=${CRAWLER_REQUESTCHECKDELAY:-10} +# Marketplace address from URL +if [[ -n "${MARKETPLACE_ADDRESS_FROM_URL}" ]]; then + WAIT=${MARKETPLACE_ADDRESS_FROM_URL_WAIT:-300} + SECONDS=0 + SLEEP=1 + # Run and retry if fail + while (( SECONDS < WAIT )); do + MARKETPLACE_ADDRESS=($(curl -s -f -m 5 "${MARKETPLACE_ADDRESS_FROM_URL}")) + # Check if exit code is 0 and returned value is not empty + if [[ $? -eq 0 && -n "${MARKETPLACE_ADDRESS}" ]]; then + export MARKETPLACEADDRESS="${MARKETPLACE_ADDRESS}" + break + else + # Sleep and check again + echo "Can't get Marketplace address from ${MARKETPLACE_ADDRESS_FROM_URL} - Retry in $SLEEP seconds / $((WAIT - SECONDS))" + sleep $SLEEP + fi + done +fi + # Update CLI arguments set -- "$@" --logLevel="${LOGLEVEL}" --publicIp="${PUBLICIP}" --metricsAddress="${METRICSADDRESS}" --metricsPort="${METRICSPORT}" --dataDir="${DATADIR}" --discoveryPort="${DISCPORT}" --bootNodes="${BOOTNODES}" --dhtEnable="${DHTENABLE}" --stepDelay="${STEPDELAY}" --revisitDelay="${REVISITDELAY}" --expiryDelay="${EXPIRYDELAY}" --checkDelay="${CHECKDELAY}" --marketplaceEnable="${MARKETPLACEENABLE}" --ethProvider="${ETHPROVIDER}" --marketplaceAddress="${MARKETPLACEADDRESS}" --requestCheckDelay="${REQUESTCHECKDELAY}" +# Show +echo -e "\nRun parameters:" +vars=$(env | grep "CRAWLER_" | grep -v -e "[0-9]*_SERVICE_" -e "[0-9]*_NODEPORT_") +echo -e "${vars//CRAWLER_/ - CRAWLER_}" +echo -e " - $@\n" + # Run -echo "Run Codex Crawler" exec "$@"