From a0a613f2e1b58b8dc71b153588f00895f3dc3ee8 Mon Sep 17 00:00:00 2001 From: Slava <20563034+veaceslavdoina@users.noreply.github.com> Date: Wed, 25 Jun 2025 22:44:46 +0300 Subject: [PATCH] build(docker): add custom entrypoint for BiblioTech and TestNetRewarder (#121) --- Tools/BiblioTech/docker/Dockerfile | 11 ++++--- Tools/BiblioTech/docker/docker-entrypoint.sh | 30 +++++++++++++++++++ Tools/TestNetRewarder/docker/Dockerfile | 11 ++++--- .../docker/docker-entrypoint.sh | 30 +++++++++++++++++++ 4 files changed, 74 insertions(+), 8 deletions(-) create mode 100644 Tools/BiblioTech/docker/docker-entrypoint.sh create mode 100644 Tools/TestNetRewarder/docker/docker-entrypoint.sh diff --git a/Tools/BiblioTech/docker/Dockerfile b/Tools/BiblioTech/docker/Dockerfile index 98887e17..f66c4b06 100644 --- a/Tools/BiblioTech/docker/Dockerfile +++ b/Tools/BiblioTech/docker/Dockerfile @@ -9,9 +9,9 @@ FROM ${IMAGE} AS builder ARG APP_HOME WORKDIR ${APP_HOME} -COPY ./Tools/BiblioTech ./Tools/BiblioTech -COPY ./Framework ./Framework -COPY ./ProjectPlugins ./ProjectPlugins +COPY Tools/BiblioTech Tools/BiblioTech +COPY Framework Framework +COPY ProjectPlugins ProjectPlugins RUN dotnet restore Tools/BiblioTech RUN dotnet publish Tools/BiblioTech -c Release -o out @@ -23,4 +23,7 @@ ENV APP_HOME=${APP_HOME} WORKDIR ${APP_HOME} COPY --from=builder ${APP_HOME}/out . -CMD dotnet ${APP_HOME}/BiblioTech.dll +COPY --chmod=0755 Tools/BiblioTech/docker/docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["bash", "-c", "dotnet ${APP_HOME}/BiblioTech.dll"] diff --git a/Tools/BiblioTech/docker/docker-entrypoint.sh b/Tools/BiblioTech/docker/docker-entrypoint.sh new file mode 100644 index 00000000..f2434a03 --- /dev/null +++ b/Tools/BiblioTech/docker/docker-entrypoint.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# 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 CODEXCONTRACTS_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 + +# Show +echo -e "\nRun parameters:" +vars=$(env | grep "CODEX" | grep -v -e "[0-9]_SERVICE_" -e "[0-9]_NODEPORT_") +echo -e "${vars//CODEX/ - CODEX}" +echo -e " - $@\n" + +# Run +exec "$@" diff --git a/Tools/TestNetRewarder/docker/Dockerfile b/Tools/TestNetRewarder/docker/Dockerfile index 4a241610..57edc587 100644 --- a/Tools/TestNetRewarder/docker/Dockerfile +++ b/Tools/TestNetRewarder/docker/Dockerfile @@ -9,9 +9,9 @@ FROM ${IMAGE} AS builder ARG APP_HOME WORKDIR ${APP_HOME} -COPY ./Tools/TestNetRewarder ./Tools/TestNetRewarder -COPY ./Framework ./Framework -COPY ./ProjectPlugins ./ProjectPlugins +COPY Tools/TestNetRewarder Tools/TestNetRewarder +COPY Framework Framework +COPY ProjectPlugins ProjectPlugins RUN dotnet restore Tools/TestNetRewarder RUN dotnet publish Tools/TestNetRewarder -c Release -o out @@ -23,4 +23,7 @@ ENV APP_HOME=${APP_HOME} WORKDIR ${APP_HOME} COPY --from=builder ${APP_HOME}/out . -CMD dotnet ${APP_HOME}/TestNetRewarder.dll +COPY --chmod=0755 Tools/TestNetRewarder/docker/docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["bash", "-c", "dotnet ${APP_HOME}/TestNetRewarder.dll"] diff --git a/Tools/TestNetRewarder/docker/docker-entrypoint.sh b/Tools/TestNetRewarder/docker/docker-entrypoint.sh new file mode 100644 index 00000000..f2434a03 --- /dev/null +++ b/Tools/TestNetRewarder/docker/docker-entrypoint.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# 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 CODEXCONTRACTS_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 + +# Show +echo -e "\nRun parameters:" +vars=$(env | grep "CODEX" | grep -v -e "[0-9]_SERVICE_" -e "[0-9]_NODEPORT_") +echo -e "${vars//CODEX/ - CODEX}" +echo -e " - $@\n" + +# Run +exec "$@"