# Compose file to run a local Eth network (ganache) and TheGraph Node version: "3.9" services: ganache: image: node:18-alpine ports: - "8545:8545" volumes: - ./.data/ganache:/ganache working_dir: /ganache command: [ "sh", "-c", "npm install ganache && npx ganache --database.dbPath /ganache/data -h 0.0.0.0 -i 1337 -l 8000000 --account 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80,100000000000000000000 -p 8545" ] networks: - bandada-dev graph-node: image: graphprotocol/graph-node ports: - "8000:8000" - "8001:8001" - "8020:8020" - "8030:8030" - "8040:8040" depends_on: - ipfs - postgres environment: postgres_host: postgres postgres_user: graph-node postgres_pass: let-me-in postgres_db: graph-node postgres_port: 5432 ipfs: "ipfs:5001" ethereum: "localhost:http://host.docker.internal:8545" # Should use the same network name in subgraph.yml # ethereum: 'goerli:https://goerli.infura.io/v3/YOUR-API-KEY' GRAPH_LOG: info GRAPH_ALLOW_NON_DETERMINISTIC_IPFS: 1 networks: - bandada-dev ipfs: image: ipfs/go-ipfs:v0.4.23 ports: - "5001:5001" volumes: - ./.data/ipfs:/data/ipfs networks: - bandada-dev postgres: image: postgres ports: - "5433:5432" command: ["postgres", "-cshared_preload_libraries=pg_stat_statements"] environment: POSTGRES_USER: graph-node POSTGRES_PASSWORD: let-me-in POSTGRES_DB: graph-node networks: - bandada-dev volumes: - ./.data/postgres:/var/lib/postgresql/data networks: bandada-dev: internal: false driver: bridge