# Note: This is a multi network setup, connecting the Pocket Node both to Rinkeby and Mainnet
version: '2'

volumes:
  geth-rinkeby: {}
  geth-mainnet: {}

# GETH should be configurable via ENV variables
services:
  geth-rinkeby:
    image: poktnetwork/geth:rinkeby
    expose:
      - "8545"
      - "8546"
      - "30303"
    volumes:
      - geth-rinkeby:/.rinkeby
    command: "--rinkeby --rpc --rpcapi eth,net --rpcaddr 0.0.0.0 --rpcport 8545 --rpcvhosts=* --syncmode fast --datadir .testnet --verbosity 3"


  geth-mainnet:
    image: poktnetwork/geth:mainnet
    expose:
      - "8545"
      - "8546"
      - "30303"
    volumes:
      - geth-mainnet:/.mainnet
    command: "--rpc  --rpcapi eth,net --rpcaddr 0.0.0.0 --rpcport 8545 --rpcvhosts=* --syncmode fast --datadir .mainnet --verbosity 3" 

  pocket-node:
    build: .
    image: poktnetwork/pocket-node:geth
    container_name: pocket-node-geth
    restart: on-failure
    expose:
      - 8000
    depends_on:
      - geth-rinkeby
      - geth-mainnet
    environment:
      POCKET_NODE_PLUGIN_ETH: ${POCKET_NODE_PLUGIN_ETH}
      POCKET_NODE_PLUGIN_ETH_TEST_NETWORK_ID: ${POCKET_NODE_PLUGIN_ETH_TEST_NETWORK_ID} # defaults to 4
      POCKET_NODE_PLUGIN_ETH_TESTNET_NODE: ${POCKET_NODE_PLUGIN_ETH_TESTNET_NODE} # defaults to http://geth-rinkeby:8545 
      POCKET_NODE_PLUGIN_ETH_MAIN_NETWORK_ID: ${POCKET_NODE_PLUGIN_ETH_MAIN_NETWORK_ID} # default  to 1
      POCKET_NODE_PLUGIN_ETH_MAIN_NODE: ${POCKET_NODE_PLUGIN_ETH_MAINNET_NODE} # defaults to http://geth-mainnet:8545
