version: '2'
services:
    # ltc is an image of litecoin node which used as base image for ltcd and
    # ltcctl. The environment variables default values determined on stage of
    # container start within starting script.
    ltcd:
      image: ltcd
      container_name: ltcd
      build:
        context: ltcd/
      volumes:
        - shared:/rpc
        - litecoin:/data
      environment:
        - RPCUSER
        - RPCPASS
        - NETWORK
        - DEBUG
        - MINING_ADDRESS
      entrypoint: ["./start-ltcd.sh"]

    lnd:
      image: lnd
      container_name: lnd_ltc
      build:
        context: ../
        dockerfile: dev.Dockerfile
      environment:
        - RPCUSER
        - RPCPASS
        - NETWORK
        - CHAIN=litecoin
        - DEBUG
      volumes:
        - shared:/rpc
        - lnd_ltc:/root/.lnd
      entrypoint: ["./start-lnd.sh"]
      links:
        - "ltcd:blockchain"

volumes:
  # shared volume is need to store the btcd rpc certificates and use it within
  # ltcctl and lnd containers.
  shared:
    driver: local

  # litecoin volume is needed for maintaining blockchain persistence
  # during ltcd container recreation.
  litecoin:
    driver: local

  # lnd volume is used for persisting lnd application data and chain state
  # during container lifecycle.
  lnd_ltc:
    driver: local
