Files
DFWebOS-Apps/fulcrum/docker-compose.yml

70 lines
2.6 KiB
YAML

version: "3.7"
services:
app_proxy:
environment:
APP_HOST: $APP_FULCRUM_IP
APP_PORT: 3006
app:
image: nmfretz/umbrel-fulcrum:1.0.1@sha256:7ebcb84446e55dbbde7711a4ac2d65ca65c55d0092e6640b41ca2d9c4539a3ff
depends_on:
- fulcrum
restart: on-failure
environment:
ELECTRUM_HIDDEN_SERVICE: "${APP_FULCRUM_RPC_HIDDEN_SERVICE}"
ELECTRUM_LOCAL_SERVICE: "${DEVICE_DOMAIN_NAME}"
ELECTRUM_HOST: "${APP_FULCRUM_NODE_IP}"
ELECTRUM_PUBLIC_CONNECTION_PORT: ${APP_FULCRUM_NODE_PORT}
BITCOIN_HOST: "${APP_BITCOIN_NODE_IP}"
RPC_USER: "${APP_BITCOIN_RPC_USER}"
RPC_PASSWORD: "${APP_BITCOIN_RPC_PASS}"
RPC_PORT: "${APP_BITCOIN_RPC_PORT}"
volumes:
- "${APP_DATA_DIR}/data/fulcrum-logs:/fulcrum-logs"
networks:
default:
ipv4_address: $APP_FULCRUM_IP
fulcrum:
image: cculianu/fulcrum:v2.1.0@sha256:71cb19ce9f8318edae1b581a793588c98f55f2f28c12e17327c478ed963ef4e3
init: true
# Положитесь на стандартный SIGTERM Docker; Fulcrum считает SIGTERM/SIGINT/SIGQUIT изящным
# Щедрый льготный период предотвращает SIGKILL во время checkpoint/flush при выходе
stop_grace_period: 5m
restart: on-failure
user: "1000:1000"
environment:
TCP: 0.0.0.0:${APP_FULCRUM_NODE_PORT}
ADMIN: 0.0.0.0:${APP_FULCRUM_ADMIN_PORT}
BITCOIND: ${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_RPC_PORT}
RPCUSER: ${APP_BITCOIN_RPC_USER}
RPCPASSWORD: ${APP_BITCOIN_RPC_PASS}
PEERING: "false"
ANNOUNCE: "false"
DATA_DIR: /data
# Exec Fulcrum как PID1, поэтому он получает SIGTERM напрямую; FIFO+tee зеркально отображает вывод в журналы докера и /logs/fulcrum.log
# rm -f делает создание FIFO идемпотентным в циклах restarts/crash
command: >
sh -c 'rm -f /tmp/fulcrum.pipe; mkfifo /tmp/fulcrum.pipe;
tee -a /logs/fulcrum.log < /tmp/fulcrum.pipe &
exec Fulcrum -D /data _ENV_ > /tmp/fulcrum.pipe 2>&1'
volumes:
- "${APP_DATA_DIR}/data/fulcrum:/data"
- "${APP_DATA_DIR}/data/fulcrum-logs:/logs"
ports:
- "${APP_FULCRUM_NODE_PORT}:${APP_FULCRUM_NODE_PORT}"
networks:
default:
ipv4_address: $APP_FULCRUM_NODE_IP
tor:
image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a
user: "1000:1000"
restart: on-failure
volumes:
- ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro
- ${TOR_DATA_DIR}:/data
environment:
HOME: "/tmp"