Coder Social home page Coder Social logo

Comments (2)

Technifocal avatar Technifocal commented on June 30, 2024 1

Apparently Docker supports wait:

https://docs.docker.com/engine/reference/commandline/wait/

Replace the entire above loop with just:

timeout 3m docker wait bitcoind

It'll wait till the container closes, or 3 minutes. Whichever is sooner.

from samourai-dojo.

Technifocal avatar Technifocal commented on June 30, 2024

Here is an example (untested) loop demonstration what @LaurentMT mentioned at the end:

# Stop
stop() {
  if [ "$BITCOIND_INSTALL" == "on" ]; then
    if [ "$BITCOIND_EPHEMERAL_HS" = "on" ]; then
      docker exec -it tor rm -rf /var/lib/tor/hsv2bitcoind
    fi

    docker exec -it bitcoind bitcoin-cli \
      -rpcconnect=bitcoind \
      --rpcport=28256 \
      --rpcuser="$BITCOIND_RPC_USER" \
      --rpcpassword="$BITCOIND_RPC_PASSWORD" \
      stop

    echo "Preparing shutdown of dojo. Please wait."

    terminationCount=180;

    while [ "${?}" -eq "0" ] || [ "${terminationCount}" -le "0" ]; do
	    terminationCount="$((terminationCount - 1))";
	    sleep 1s;
    	docker exec -it bitcoind bitcoin-cli \
	      -rpcconnect=bitcoind \
	      --rpcport=28256 \
	      --rpcuser="$BITCOIND_RPC_USER" \
	      --rpcpassword="$BITCOIND_RPC_PASSWORD" \
	      uptime;
    done;
  fi

  yamlFiles=$(select_yaml_files)
  eval "docker-compose $yamlFiles down"
}

Potentially replace:

docker exec -it bitcoind bitcoin-cli \
	      -rpcconnect=bitcoind \
	      --rpcport=28256 \
	      --rpcuser="$BITCOIND_RPC_USER" \
	      --rpcpassword="$BITCOIND_RPC_PASSWORD" \
	      uptime;

with:

docker exec -it bitcoind true

Which will always return true while the bitcoin-cli container exists, or replace it with something that actually checks the container status.

from samourai-dojo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.