From b89ac7f4dddf897a0bb6bb9a70182f90bd906841 Mon Sep 17 00:00:00 2001 From: Maycon Fabio Date: Thu, 17 Jul 2025 23:13:24 -0300 Subject: [PATCH 1/3] Define volumes only in node usdt docker file --- docker-compose.yml | 4 ---- docker-compose/node.usdt.yml | 4 ++++ node.mainnet.yml | 4 ---- node.regtest.yml | 5 ----- node.signet.yml | 5 ----- 5 files changed, 4 insertions(+), 18 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 237a8ba..c06aa0d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,3 @@ include: - path: docker-compose/connectivity-check.yml - path: docker-compose/metrics.yml - path: docker-compose/websocket.yml - -volumes: - bitcoin-data: - bitcoin-bin: diff --git a/docker-compose/node.usdt.yml b/docker-compose/node.usdt.yml index cf7101e..0c55eab 100644 --- a/docker-compose/node.usdt.yml +++ b/docker-compose/node.usdt.yml @@ -23,3 +23,7 @@ services: timeout: 3s retries: 3 start_period: 5s + +volumes: + bitcoin-data: + bitcoin-bin: diff --git a/node.mainnet.yml b/node.mainnet.yml index 1897510..359b6f6 100644 --- a/node.mainnet.yml +++ b/node.mainnet.yml @@ -7,7 +7,3 @@ include: - path: docker-compose/connectivity-check.yml - path: docker-compose/metrics.yml - path: docker-compose/websocket.yml - -volumes: - bitcoin-data: - bitcoin-bin: diff --git a/node.regtest.yml b/node.regtest.yml index 61800f4..c06aa0d 100644 --- a/node.regtest.yml +++ b/node.regtest.yml @@ -7,8 +7,3 @@ include: - path: docker-compose/connectivity-check.yml - path: docker-compose/metrics.yml - path: docker-compose/websocket.yml - -volumes: - bitcoin-data: - bitcoin-bin: - diff --git a/node.signet.yml b/node.signet.yml index 5796757..f2909af 100644 --- a/node.signet.yml +++ b/node.signet.yml @@ -7,8 +7,3 @@ include: - path: docker-compose/connectivity-check.yml - path: docker-compose/metrics.yml - path: docker-compose/websocket.yml - -volumes: - bitcoin-data: - bitcoin-bin: - From 0fb748c38768474dfad05077c2edbe547295fcf8 Mon Sep 17 00:00:00 2001 From: Maycon Fabio Date: Fri, 18 Jul 2025 22:59:07 -0300 Subject: [PATCH 2/3] Remove bitcoin-bin volume --- docker-compose/node.usdt.yml | 2 -- docker/bitcoin-node-entrypoint.sh | 8 ++++---- docker/bitcoin-node-healthcheck.sh | 2 +- docker/bitcoin-node.dockerfile | 11 ++++++----- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/docker-compose/node.usdt.yml b/docker-compose/node.usdt.yml index 0c55eab..54aeb8f 100644 --- a/docker-compose/node.usdt.yml +++ b/docker-compose/node.usdt.yml @@ -12,7 +12,6 @@ services: privileged: true volumes: - bitcoin-data:/home/bitcoin/.bitcoin - - bitcoin-bin:/shared - /sys/kernel/debug:/sys/kernel/debug depends_on: nats: @@ -26,4 +25,3 @@ services: volumes: bitcoin-data: - bitcoin-bin: diff --git a/docker/bitcoin-node-entrypoint.sh b/docker/bitcoin-node-entrypoint.sh index 81f8f06..516a921 100755 --- a/docker/bitcoin-node-entrypoint.sh +++ b/docker/bitcoin-node-entrypoint.sh @@ -30,21 +30,21 @@ esac # Start bitcoind as bitcoin user, in the background echo "Launching Bitcoin node in $BITCOIN_NETWORK mode..." -/usr/sbin/runuser -u bitcoin -- /shared/bitcoind $NETWORK & +/usr/sbin/runuser -u bitcoin -- $BTC_BIN_PATH/bitcoind $NETWORK & BITCOIND_PID=$! # Now wait for the RPC for i in {1..30}; do - /usr/sbin/runuser -u bitcoin -- /shared/bitcoin-cli $NETWORK getblockchaininfo >/dev/null 2>&1 && break + /usr/sbin/runuser -u bitcoin -- $BTC_BIN_PATH/bitcoin-cli $NETWORK getblockchaininfo >/dev/null 2>&1 && break sleep 1 done # Final check -if ! /usr/sbin/runuser -u bitcoin -- /shared/bitcoin-cli $NETWORK getblockchaininfo >/dev/null 2>&1; then +if ! /usr/sbin/runuser -u bitcoin -- $BTC_BIN_PATH/bitcoin-cli $NETWORK getblockchaininfo >/dev/null 2>&1; then echo "Error: bitcoind did not start in time." >&2 exit 1 fi echo "Starting ebpf-extractor" # Run ebpf-extractor as root (needs CAP_SYS_ADMIN for BPF) -exec /usr/local/bin/ebpf-extractor --no-idle-exit --nats-address nats://nats:4222 --bitcoind-path /shared/bitcoind +exec /usr/local/bin/ebpf-extractor --no-idle-exit --nats-address nats://nats:4222 --bitcoind-path $BTC_BIN_PATH/bitcoind diff --git a/docker/bitcoin-node-healthcheck.sh b/docker/bitcoin-node-healthcheck.sh index 8cdfafa..e79352a 100755 --- a/docker/bitcoin-node-healthcheck.sh +++ b/docker/bitcoin-node-healthcheck.sh @@ -13,4 +13,4 @@ case "$BITCOIN_NETWORK" in ;; esac -exec su - bitcoin -c "/shared/bitcoin-cli $NETWORK getblockchaininfo" +exec su - bitcoin -c "$BTC_BIN_PATH/bitcoin-cli $NETWORK getblockchaininfo" diff --git a/docker/bitcoin-node.dockerfile b/docker/bitcoin-node.dockerfile index af917f8..fdd4928 100644 --- a/docker/bitcoin-node.dockerfile +++ b/docker/bitcoin-node.dockerfile @@ -82,21 +82,22 @@ RUN apt-get update && apt-get install -y \ # in user land, not as root. RUN useradd -m -s /bin/bash bitcoin \ && mkdir -p /home/bitcoin/.bitcoin \ - && mkdir -p /shared \ - && chown -R bitcoin:bitcoin /home/bitcoin /shared + && chown -R bitcoin:bitcoin /home/bitcoin + +# Set bitcoin binary path environment variable +ENV BTC_BIN_PATH=/bitcoin/build/bin # Copy everything we need from builder +COPY --from=btc-core-builder $BTC_BIN_PATH $BTC_BIN_PATH COPY --from=peer-observer-builder /peer-observer/scripts/bitcoin-node-entrypoint.sh /peer-observer/scripts/bitcoin-node-entrypoint.sh COPY --from=peer-observer-builder /peer-observer/scripts/bitcoin-node-healthcheck.sh /peer-observer/scripts/bitcoin-node-healthcheck.sh COPY --from=peer-observer-builder /peer-observer/target/release/ebpf-extractor /usr/local/bin/ebpf-extractor -COPY --from=btc-core-builder /bitcoin/build/bin/ /shared/ # Expose Bitcoin ports (RPC: 8332, P2P: 8333) EXPOSE 8332 8333 -# Set data directory and shared volume +# Set data directory volume VOLUME /home/bitcoin/.bitcoin -VOLUME /shared # Spawn bitcoin daemon WORKDIR /peer-observer From 7bfb1cfa17937646d0d405fb27ac7dc25b6a1f89 Mon Sep 17 00:00:00 2001 From: Maycon Fabio Date: Fri, 18 Jul 2025 23:12:08 -0300 Subject: [PATCH 3/3] Store .bitcoin folder volume inside repo Co-authored-by: Edil Medeiros --- .bitcoin/.gitignore | 2 ++ .gitignore | 0 docker-compose/node.usdt.yml | 5 +++++ 3 files changed, 7 insertions(+) create mode 100644 .bitcoin/.gitignore create mode 100644 .gitignore diff --git a/.bitcoin/.gitignore b/.bitcoin/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/.bitcoin/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/docker-compose/node.usdt.yml b/docker-compose/node.usdt.yml index 54aeb8f..cd37c42 100644 --- a/docker-compose/node.usdt.yml +++ b/docker-compose/node.usdt.yml @@ -25,3 +25,8 @@ services: volumes: bitcoin-data: + driver: local + driver_opts: + type: none + device: ../.bitcoin + o: bind