Files

90 lines
3.4 KiB
YAML

version: "3.7"
services:
app_proxy:
environment:
APP_HOST: bitcoin-regtest-dashboard_dashboard_1
APP_PORT: 3000
# Bitcoin Core в режиме регистрации (автономный, без зависимостей)
bitcoin:
image: ghcr.io/getumbrel/docker-bitcoind:v30.2@sha256:75ad7da4eaa2a56b92e5703ff39fa86aa7b9012c50749ca082f018a761d136cd
user: "1000:1000"
restart: on-failure
entrypoint: ["/bin/sh", "-c"]
command:
- |
rm -f /data/.bitcoin/regtest/.ready
bitcoind -regtest \
-server=1 \
-rpcbind=0.0.0.0 \
-rpcallowip=0.0.0.0/0 \
-rpcport=18443 \
-txindex=1 \
-fallbackfee=0.00001 \
-disablewallet=0 \
-zmqpubrawblock=tcp://0.0.0.0:28332 \
-zmqpubrawtx=tcp://0.0.0.0:28333 &
BITCOIND_PID=$$!
while [ ! -f /data/.bitcoin/regtest/.cookie ]; do sleep 1; done
chmod 755 /data/.bitcoin/regtest
chmod 644 /data/.bitcoin/regtest/.cookie
sleep 2
bitcoin-cli -regtest -rpccookiefile=/data/.bitcoin/regtest/.cookie createwallet "regtest_wallet" 2>/dev/null || \
bitcoin-cli -regtest -rpccookiefile=/data/.bitcoin/regtest/.cookie loadwallet "regtest_wallet" 2>/dev/null || true
bitcoin-cli -regtest -rpccookiefile=/data/.bitcoin/regtest/.cookie -rpcwallet=regtest_wallet -generate 1 >/dev/null 2>&1 || true
touch /data/.bitcoin/regtest/.ready
while kill -0 $$BITCOIND_PID 2>/dev/null; do
chmod 755 /data/.bitcoin/regtest 2>/dev/null
chmod 644 /data/.bitcoin/regtest/.cookie 2>/dev/null
sleep 5
done &
wait $$BITCOIND_PID
volumes:
- ${APP_DATA_DIR}/data/bitcoin:/data/.bitcoin
healthcheck:
test: ["CMD-SHELL", "test -f /data/.bitcoin/regtest/.ready && chmod 644 /data/.bitcoin/regtest/.cookie && bitcoin-cli -regtest -rpccookiefile=/data/.bitcoin/regtest/.cookie getblockchaininfo"]
interval: 5s
timeout: 5s
retries: 10
start_period: 10s
# Electrs — реализация Electrum Server
electrs:
image: getumbrel/electrs:v0.11.0@sha256:0a2c6f573abfd8d724651c6ba1c1f3a9c740219c1cf0f4468043c3342170d8a5
user: "1000:1000"
restart: on-failure
ports:
- "60401:50001"
environment:
ELECTRS_ELECTRUM_RPC_ADDR: "0.0.0.0:50001"
ELECTRS_DAEMON_RPC_ADDR: "bitcoin-regtest-dashboard_bitcoin_1:18443"
ELECTRS_DAEMON_P2P_ADDR: "bitcoin-regtest-dashboard_bitcoin_1:18444"
ELECTRS_LOG_FILTERS: "INFO"
ELECTRS_NETWORK: "regtest"
volumes:
- ${APP_DATA_DIR}/data/electrs:/data
- ${APP_DATA_DIR}/data/bitcoin:/data/.bitcoin:ro
depends_on:
bitcoin:
condition: service_healthy
# Панель регистрации биткойнов
dashboard:
image: coreylphillips/bitcoin-regtest-dashboard:v1.0.3@sha256:f1ccffc2002f107559338f015097e49af7f547eababfcd1f53f0f2bdbd159c88
user: "1000:1000"
restart: on-failure
environment:
PORT: 3000
BITCOIN_RPC_HOST: bitcoin-regtest-dashboard_bitcoin_1
BITCOIN_RPC_PORT: 18443
BITCOIN_COOKIE_FILE: /bitcoin/.bitcoin/regtest/.cookie
ELECTRS_HOST: bitcoin-regtest-dashboard_electrs_1
ELECTRS_PORT: 50001
ELECTRS_EXTERNAL_PORT: 60401
volumes:
- ${APP_DATA_DIR}/data/bitcoin:/bitcoin/.bitcoin:ro
depends_on:
bitcoin:
condition: service_healthy