services: graph-node: image: cerc/graph-node:local depends_on: db: condition: service_healthy ipfs: condition: service_healthy extra_hosts: - host.docker.internal:host-gateway environment: ipfs: ipfs:5001 postgres_host: db postgres_port: 5432 postgres_user: graph-node postgres_pass: password postgres_db: graph-node ethereum: ${ETH_NETWORKS:-lotus-fixturenet:http://lotus-node-1:1234/rpc/v1} # Env varaibles reference: https://git.vdb.to/cerc-io/graph-node/src/branch/master/docs/environment-variables.md GRAPH_LOG: debug ETHEREUM_REORG_THRESHOLD: 3 GRAPH_ETHEREUM_JSON_RPC_TIMEOUT: ${GRAPH_ETHEREUM_JSON_RPC_TIMEOUT:-180} GRAPH_ETHEREUM_REQUEST_RETRIES: ${GRAPH_ETHEREUM_REQUEST_RETRIES:-10} GRAPH_ETHEREUM_MAX_BLOCK_RANGE_SIZE: ${GRAPH_ETHEREUM_MAX_BLOCK_RANGE_SIZE:-2000} GRAPH_ETHEREUM_BLOCK_INGESTOR_MAX_CONCURRENT_JSON_RPC_CALLS_FOR_TXN_RECEIPTS: ${GRAPH_ETHEREUM_BLOCK_INGESTOR_MAX_CONCURRENT_JSON_RPC_CALLS_FOR_TXN_RECEIPTS:-1000} entrypoint: ["bash", "-c"] # Wait for ETH RPC endpoint to be up when running with fixturenet-lotus command: | "wait_for ${ETH_RPC_HOST:-lotus-node-1}:${ETH_RPC_PORT:-1234} -t 1800 -- start" ports: - "8000" - "8001" - "8020" - "8030" - "8040" healthcheck: test: ["CMD", "nc", "-vz", "localhost", "8020"] interval: 30s timeout: 10s retries: 10 start_period: 3s ipfs: image: ipfs/kubo:master-2023-02-20-714a968 volumes: - ipfs-import:/import - ipfs-data:/data/ipfs ports: - "8080" - "4001" - "5001" db: image: postgres:14-alpine volumes: - db-data:/var/lib/postgresql/data environment: POSTGRES_USER: "graph-node" POSTGRES_DB: "graph-node" POSTGRES_PASSWORD: "password" POSTGRES_INITDB_ARGS: "-E UTF8 --locale=C" command: [ "postgres", "-cshared_preload_libraries=pg_stat_statements" ] healthcheck: test: ["CMD", "nc", "-v", "localhost", "5432"] interval: 30s timeout: 10s retries: 10 start_period: 3s ports: - "5432" volumes: ipfs-import: ipfs-data: db-data: