Skip to content

Commit 0c6c67f

Browse files
committed
Docker: Don't start bitcoind when using an external lightningd instance
Closes #31.
1 parent 705cdac commit 0c6c67f

File tree

1 file changed

+33
-31
lines changed

1 file changed

+33
-31
lines changed

bin/docker-entrypoint.sh

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,49 +8,51 @@ trap 'kill `jobs -p`' SIGTERM
88

99
[[ "$NETWORK" == "mainnet" ]] && NETWORK=bitcoin
1010

11-
if [ -d /etc/bitcoin ]; then
12-
echo -n "Connecting to bitcoind configured in /etc/bitcoin... "
11+
if [ -d /etc/lightning ]; then
12+
echo -n "Using lightningd directory mounted in /etc/lightning... "
13+
LN_PATH=/etc/lightning
1314

14-
RPC_OPT="-datadir=/etc/bitcoin $([[ -z "$BITCOIND_RPCCONNECT" ]] || echo "-rpcconnect=$BITCOIND_RPCCONNECT")"
15+
else
1516

16-
elif [ -n "$BITCOIND_URI" ]; then
17-
[[ "$BITCOIND_URI" =~ ^[a-z]+:\/+(([^:/]+):([^@/]+))@([^:/]+:[0-9]+)/?$ ]] || \
18-
{ echo >&2 "ERROR: invalid bitcoind URI: $BITCOIND_URI"; exit 1; }
17+
# Setup bitcoind (only needed when we're starting our own lightningd instance)
18+
if [ -d /etc/bitcoin ]; then
19+
echo -n "Connecting to bitcoind configured in /etc/bitcoin... "
1920

20-
echo -n "Connecting to bitcoind at ${BASH_REMATCH[4]}... "
21+
RPC_OPT="-datadir=/etc/bitcoin $([[ -z "$BITCOIND_RPCCONNECT" ]] || echo "-rpcconnect=$BITCOIND_RPCCONNECT")"
2122

22-
RPC_OPT="-rpcconnect=${BASH_REMATCH[4]}"
23+
elif [ -n "$BITCOIND_URI" ]; then
24+
[[ "$BITCOIND_URI" =~ ^[a-z]+:\/+(([^:/]+):([^@/]+))@([^:/]+:[0-9]+)/?$ ]] || \
25+
{ echo >&2 "ERROR: invalid bitcoind URI: $BITCOIND_URI"; exit 1; }
2326

24-
if [ "${BASH_REMATCH[2]}" != "__cookie__" ]; then
25-
RPC_OPT="$RPC_OPT -rpcuser=${BASH_REMATCH[2]} -rpcpassword=${BASH_REMATCH[3]}"
26-
else
27-
RPC_OPT="$RPC_OPT -datadir=/tmp/bitcoin"
28-
[[ "$NETWORK" == "bitcoin" ]] && NET_PATH=/tmp/bitcoin || NET_PATH=/tmp/bitcoin/$NETWORK
29-
mkdir -p $NET_PATH
30-
echo "${BASH_REMATCH[1]}" > $NET_PATH/.cookie
31-
fi
27+
echo -n "Connecting to bitcoind at ${BASH_REMATCH[4]}... "
3228

33-
else
34-
echo -n "Starting bitcoind... "
29+
RPC_OPT="-rpcconnect=${BASH_REMATCH[4]}"
3530

36-
mkdir -p /data/bitcoin
37-
RPC_OPT="-datadir=/data/bitcoin"
31+
if [ "${BASH_REMATCH[2]}" != "__cookie__" ]; then
32+
RPC_OPT="$RPC_OPT -rpcuser=${BASH_REMATCH[2]} -rpcpassword=${BASH_REMATCH[3]}"
33+
else
34+
RPC_OPT="$RPC_OPT -datadir=/tmp/bitcoin"
35+
[[ "$NETWORK" == "bitcoin" ]] && NET_PATH=/tmp/bitcoin || NET_PATH=/tmp/bitcoin/$NETWORK
36+
mkdir -p $NET_PATH
37+
echo "${BASH_REMATCH[1]}" > $NET_PATH/.cookie
38+
fi
3839

39-
bitcoind -$NETWORK $RPC_OPT $BITCOIND_OPTS &
40-
echo -n "waiting for cookie... "
41-
sed --quiet '/^\.cookie$/ q' <(inotifywait -e create,moved_to --format '%f' -qmr /data/bitcoin)
42-
fi
40+
else
41+
echo -n "Starting bitcoind... "
4342

44-
echo -n "waiting for RPC... "
45-
bitcoin-cli -$NETWORK $RPC_OPT -rpcwait getblockchaininfo > /dev/null
46-
echo "ready."
43+
mkdir -p /data/bitcoin
44+
RPC_OPT="-datadir=/data/bitcoin"
4745

46+
bitcoind -$NETWORK $RPC_OPT $BITCOIND_OPTS &
47+
echo -n "waiting for cookie... "
48+
sed --quiet '/^\.cookie$/ q' <(inotifywait -e create,moved_to --format '%f' -qmr /data/bitcoin)
49+
fi
4850

49-
if [ -d /etc/lightning ]; then
50-
echo -n "Using lightningd directory mounted in /etc/lightning... "
51-
LN_PATH=/etc/lightning
51+
echo -n "waiting for RPC... "
52+
bitcoin-cli -$NETWORK $RPC_OPT -rpcwait getblockchaininfo > /dev/null
53+
echo "ready."
5254

53-
else
55+
# Setup lightning
5456
echo -n "Starting lightningd... "
5557

5658
LN_PATH=/data/lightning

0 commit comments

Comments
 (0)