Let's you installs bitcoind and required dependencies, then run it.
Idea behind this is to easily install bitcoind.
Eventually, I'd want to incorporate lightningd or LND too, maybe doing a compose file.
Make sure there is nothing running before you cleanup.
From the project root
./clean.shOr if you don't have this project yet
curl "https://gitlab.com/nolim1t/financial-independence/raw/master/clean.sh" 2>/dev/null | shFrom the project root, e.g.
cd dockerfilesThis builds bitcoind for lncm/bitcoind repo. Please tag your uploads according to <version>-<arch> where version is of the form 0.16.3 and arch may take x64, arm6 or arm7 depending on the CPU you are building on.
Bitcoin Core (bitcoind)
# x86_64 (64-bit)
docker build -t lncm/bitcoind:unversioned-x64 ./bitcoind/x86_64
# ARMv6 (32-bit Raspberry Pi: 1 / 1+ / 2 / Zero)
docker build -t lncm/bitcoind:unversioned-arm6 ./bitcoind/arm
# ARMv7 (64-bit Raspberry Pi: 2 v1.2 / 3 / 3+)
docker build -t lncm/bitcoind:unversioned-arm7 ./bitcoind/armc-lightning (lightningd)
# x86_64 (64-bit)
docker build -t lncm/clightning:unversioned-x64 ./lightningd/x86_64
docker build -t lncm/clightning:0.6.1-x64 ./lightningd/x86_64
# ARMv6 (32-bit Raspberry Pi: 1 / 1+ / 2 / Zero)
docker build -t lncm/clightning:unversioned-arm6 ./lightningd/arm
# ARMv7 (64-bit Raspberry Pi: 2 v1.2 / 3 / 3+)
docker build -t lncm/clightning:unversioned-arm7 ./lightningd/armLightning Network Daemon (lnd)
# x86_64 (64-bit)
docker build -t lncm/lnd:unversioned-x64 ./lnd/x86_64
# ARMv6 (32-bit Raspberry Pi: 1 / 1+ / 2 / Zero)
docker build -t lncm/lnd:unversioned-arm6 ./lnd/arm
# ARMv7 (64-bit Raspberry Pi: 2 v1.2 / 3 / 3+)
docker build -t lncm/lnd:unversioned-arm7 ./lnd/armGrab from Docker Hub if you don't have the image and don't want to spend hours compiling. Choose between x64, arm6 and arm7 according to your hardware.
Bitcoin Core (bitcoind)
# x86_64 (64-bit PC)
docker pull lncm/bitcoind:0.16.3-x64
docker pull lncm/bitcoind:0.17.0-x64
# ARMv6 (32-bit Raspberry Pi: 1 / 1+ / 2 / Zero)
docker pull lncm/bitcoind:0.16.3-arm6
# ARMv7 (64-bit Raspberry Pi: 2 v1.2 / 3 / 3+)
docker pull lncm/bitcoind:0.16.3-arm7
docker pull lncm/bitcoind:0.17.0-arm7
# ARMv7 (Raspberry PI + Alpine .. seems to work on both)
docker pull lncm/bitcoind:0.17.0-alpine-arm7
# 0.17.1 - ARMv6 (Raspberry PI + Alpine.. Seems to work on both)
docker pull lncm/bitcoind:0.17.1-alpine-arm
# x86_64 0.17.1
docker pull lncm/bitcoind:0.17.1-alpine-x86_64
c-lightning (lightningd)
# x86_64 (64-bit PC)
docker pull lncm/clightning:0.6.1-x64
# ARMv6 (32-bit Raspberry Pi: 1 / 1+ / 2 / Zero)
docker pull lncm/clightning:0.6.1-arm6
# ARMv7 (64-bit Raspberry Pi: 2 v1.2 / 3 / 3+)
docker pull lncm/clightning:0.6.1-arm7Lightning Network Daemon (lnd)
# x86_64 (64-bit PC)
docker pull lncm/lnd:0.5-x64
# ARMv6 (32-bit Raspberry Pi: 1 / 1+ / 2 / Zero)
docker pull lncm/lnd:0.5-arm6
# ARMv7 (64-bit Raspberry Pi: 2 v1.2 / 3 / 3+)
docker pull lncm/lnd:0.5-arm7# For x86 Architecture
docker run --rm \
-v /local/path/to/data:/data \
-p 8332:8332 \
-p 8333:8333 \
--name beyourownbank \
-d=true \
lncm/bitcoind:0.16.3-x86_64
# Passing custom commands (for example reindexing the chain)
docker run --rm \
-v /local/path/to/data:/data \
-p 8332:8332 \
-p 8333:8333 \
--name beyourownbank \
-d=true \
--entrypoint=/usr/local/bitcoin/bin/bitcoind \
lncm/bitcoind:0.16.3-x86_64 \
-datadir=/data/btc -reindex-chainstate \
-zmqpubrawblock=tcp://0.0.0.0:28332 \
-zmqpubrawblock=tcp://0.0.0.0:28332docker run --rm -v drive:\data\:/data -p 8333:8333 -p 8332:8332 --name beyourownbank -d=true lncm/bitcoind:0.16.3-x86_64
# Passing custom commands (for example reindexing the chain)
docker run --rm -v drive:\data\:/data -p 8333:8333 -p 8332:8332 --name beyourownbank -d=true --entrypoint=/usr/local/bitcoin/bin/bitcoind lncm/bitcoind:0.16.3-x86_64 -datadir=/data/btc -reindex-chainstate --zmqpubrawblock=tcp://0.0.0.0:28332 -zmqpubrawblock=tcp://0.0.0.0:28332
Basically the above maps a local folder to data. This stores the bitcoin.conf which should be in a folder called /btc inside the data folder. Will try to simplify this later.
Pre-requisites, butcoind is running.
mkdir -p /home/pi/data/lightningd
cp ln.sh /home/pi/data
cp config-dist /home/pi/data/lightningd/config
# Or you can use vim (I dont judge)
nano /home/pi/data/lightningd/config
# Now we are ready to rock
# You can run this
docker run -it --rm \
--entrypoint="/data/ln.sh" \
-v /home/pi/data:/data \
-v /home/pi/data/lightningd:/root/.lightning \
-p 9735:9735 \
-d=true \
--name lightningpay \
lncm/clightning:0.6.1-arm7
# OR this will also work too
curl "https://gitlab.com/nolim1t/financial-independence/snippets/1757158/raw" 2>/dev/null | bashdocker exec -it beyourownbank bashdocker stop beyourownbank
docker rm beyourownbank
docker stop lightningpay
docker rm lightningpayThis stops and cleans up the service.
Execute this command. However, you should read this script before proceeding.
curl "https://gitlab.com/nolim1t/financial-independence/snippets/1757158/raw" 2>/dev/null | bashThis is highly experimental so it may break. But it can be quite useful to include debug information into bug reports.
To peak into the container:
docker commit last-container-id-that-crashed
docker run -it new-container-idYou should be able to execute

