version: "3.8"
services:

  lotus-miner:
    hostname: lotus-miner
    env_file:
      - ../config/fixturenet-lotus/lotus-env.env
    image: cerc/lotus:local
    volumes:
      - ../config/fixturenet-lotus/setup-miner.sh:/docker-entrypoint-scripts.d/setup-miner.sh
      - ../config/fixturenet-lotus/fund-account.sh:/fund-account.sh
      - lotus_miner_params:/var/tmp/filecoin-proof-parameters
      - lotus_shared:/root/.lotus-shared
      - lotus_miner_data:/root/data
    entrypoint: ["sh", "/docker-entrypoint-scripts.d/setup-miner.sh"]
    ports:
      - "1234"
      - "2345"
      - "3456"
      - "1777"

  lotus-node-1:
    hostname: lotus-node-1
    env_file:
      - ../config/fixturenet-lotus/lotus-env.env
    environment:
      # Use 0.0.0.0 so that calls can be made from outside the container
      - LOTUS_API_LISTENADDRESS=/ip4/0.0.0.0/tcp/1234/http
    image: cerc/lotus:local
    volumes:
      - ../config/fixturenet-lotus/setup-node.sh:/docker-entrypoint-scripts.d/setup-node.sh
      - lotus_node_1_params:/var/tmp/filecoin-proof-parameters
      - lotus_shared:/root/.lotus-shared
      - lotus_node_1_data:/root/data
    healthcheck:
      test: ["CMD", "nc", "-vz", "localhost", "1234"]
      interval: 30s
      timeout: 10s
      retries: 60
      start_period: 3s
    depends_on:
      - lotus-miner
    entrypoint: ["sh", "/docker-entrypoint-scripts.d/setup-node.sh"]
    ports:
      - "1234"
      - "2345"
      - "3456"
      - "1777"

  lotus-node-2:
    hostname: lotus-node-2
    env_file:
      - ../config/fixturenet-lotus/lotus-env.env
    environment:
      # Use 0.0.0.0 so that calls can be made from outside the container
      - LOTUS_API_LISTENADDRESS=/ip4/0.0.0.0/tcp/1234/http
    image: cerc/lotus:local
    volumes:
      - ../config/fixturenet-lotus/setup-node.sh:/docker-entrypoint-scripts.d/setup-node.sh
      - lotus_node_2_params:/var/tmp/filecoin-proof-parameters
      - lotus_shared:/root/.lotus-shared
      - lotus_node_2_data:/root/data
    healthcheck:
      test: ["CMD", "nc", "-vz", "localhost", "1234"]
      interval: 30s
      timeout: 10s
      retries: 60
      start_period: 3s
    depends_on:
      - lotus-miner
    entrypoint: ["sh", "/docker-entrypoint-scripts.d/setup-node.sh"]
    ports:
      - "1234"
      - "2345"
      - "3456"
      - "1777"

volumes:
  lotus_miner_params:
  lotus_node_1_params:
  lotus_node_2_params:
  lotus_shared:
  lotus_miner_data:
  lotus_node_1_data:
  lotus_node_2_data:
