services: reth: restart: always image: "ghcr.io/paradigmxyz/reth:v1.8.2" ulimits: nofile: soft: 1048576 hard: 1048576 ports: - 127.0.0.1:8545:8545 volumes: - type: volume source: reth-data target: /rethdata - type: bind source: ./etc/reth/chaindata target: /chaindata command: node --dev --datadir /rethdata --http --http.addr 0.0.0.0 --http.port 8545 --http.corsdomain "*" --chain /chaindata/reth_config --dev.block-time 300ms postgres: image: "postgres:18" command: postgres -c 'max_connections=1000' ulimits: nofile: soft: 1048576 hard: 1048576 ports: - 127.0.0.1:5432:5432 volumes: - type: volume source: postgres-data target: /var/lib/postgresql/data environment: # We bind only to 127.0.0.1, so setting insecure password is acceptable here - POSTGRES_PASSWORD=notsecurepassword # postgres:18 moved the default PGDATA; pin it so the mounted volume is used - PGDATA=/var/lib/postgresql/data # This is specific to runner zk: image: "ghcr.io/matter-labs/zk-environment:latest2.0-lightweight" security_opt: - seccomp:unconfined command: tail -f /dev/null ulimits: nofile: soft: 1048576 hard: 1048576 volumes: - .:/usr/src/zksync - /usr/src/cache:/usr/src/cache - /var/run/docker.sock:/var/run/docker.sock - ./hardhat-nodejs:/root/.cache/hardhat-nodejs env_file: - ./.env extra_hosts: - "host:host-gateway" profiles: - runner network_mode: host volumes: postgres-data: reth-data: