version: '2' services: # btc is an image of bitcoin node which used as base image for btcd and # btccli. The environment variables default values determined on stage of # container start within starting script. btc: image: btcd build: context: btcd/ volumes: - shared:/rpc - blockchain:/data environment: - RPCUSER - RPCPASS btcd: extends: btc container_name: btcd environment: - DEBUG - MINING_ADDRESS entrypoint: ["./start-btcd.sh"] btcctl: extends: btc container_name: btcctl links: - "btcd:rpcserver" entrypoint: ["./start-btcctl.sh"] lnd: image: lnd build: context: ../ dockerfile: docker/lnd/Dockerfile environment: - RPCUSER - RPCPASS - DEBUG volumes: - shared:/rpc entrypoint: ["./start-lnd.sh"] alice: extends: lnd container_name: alice links: - "btcd:btcd" bob: extends: lnd container_name: bob links: - "btcd:btcd" volumes: # shared volume is need to store the btcd rpc certificates and us it within # btcctl and lnd containers. shared: driver: local # blockhain volume is needed for maintaining blockchain persistance # during btcd container recreation. blockchain: driver: local