version: "3.9" services: blockscout: depends_on: - postgres - sequencer build: context: blockscout dockerfile: docker/Dockerfile restart: always container_name: 'blockscout' links: - postgres:database command: 'sh -c "mix do ecto.create, ecto.migrate; node init/install.js postgres 5432; mix do phx.server"' extra_hosts: - 'host.docker.internal:host-gateway' env_file: - ./blockscout/nitro.env environment: ETHEREUM_JSONRPC_VARIANT: 'geth' ETHEREUM_JSONRPC_HTTP_URL: http://sequencer:8547/ INDEXER_DISABLE_PENDING_TRANSACTIONS_FETCHER: "true" DATABASE_URL: postgresql://postgres:@postgres:5432/blockscout?ssl=false ECTO_USE_SSL: "false" ports: - "127.0.0.1:4000:4000" postgres: image: postgres:13.6 restart: always container_name: 'postgres' environment: POSTGRES_PASSWORD: '' POSTGRES_USER: 'postgres' POSTGRES_HOST_AUTH_METHOD: 'trust' volumes: - "postgres-data:/var/lib/postgresql/data" ports: - "127.0.0.1:7432:5432" redis: image: redis:6.2.6 ports: - "127.0.0.1:6379:6379" geth: image: ethereum/client-go:stable ports: - "127.0.0.1:8545:8545" - "127.0.0.1:8546:8546" - "127.0.0.1:30303:30303" volumes: - "l1data:/root/.ethereum" - "l1keystore:/keystore" - "config:/config" command: --keystore /keystore --http --http.addr 0.0.0.0 --http.vhosts * --http.api personal,eth,net,web3 --http.corsdomain * --ws --ws.addr 0.0.0.0 --ws.api personal,eth,net,web3,debug,txpool --dev --dev.period 1 --password /root/.ethereum/passphrase --gcmode archive sequencer: pid: host # allow debugging build: context: . target: nitro-node-dev ports: - "127.0.0.1:8547:8547" - "127.0.0.1:8548:8548" - "127.0.0.1:9642:9642" volumes: - "seqdata:/home/user/.arbitrum/local/nitro" - "config:/config" command: --conf.file /config/sequencer_config.json --node.feed.output.enable --node.feed.output.port 9642 --http.vhosts * --http.api net,web3,eth,txpool,debug --http.corsdomain * --node.seq-coordinator.my-url ws://sequencer:8548 --graphql.enable --graphql.vhosts * --graphql.corsdomain * depends_on: - geth - redis sequencer_b: pid: host # allow debugging build: context: . target: nitro-node-dev ports: - "127.0.0.1:8647:8547" - "127.0.0.1:8648:8548" volumes: - "seqdata_b:/home/user/.arbitrum/local/nitro" - "config:/config" command: --conf.file /config/sequencer_config.json --node.seq-coordinator.my-url ws://sequencer_b:8548 depends_on: - geth - redis sequencer_c: pid: host # allow debugging build: context: . target: nitro-node-dev ports: - "127.0.0.1:8747:8547" - "127.0.0.1:8748:8548" volumes: - "seqdata_c:/home/user/.arbitrum/local/nitro" - "config:/config" command: --conf.file /config/sequencer_config.json --node.seq-coordinator.my-url ws://sequencer_c:8548 depends_on: - geth - redis sequencer_d: pid: host # allow debugging build: context: . target: nitro-node-dev ports: - "127.0.0.1:8847:8547" - "127.0.0.1:8848:8548" volumes: - "seqdata_d:/home/user/.arbitrum/local/nitro" - "config:/config" command: --conf.file /config/sequencer_config.json --node.seq-coordinator.my-url ws://sequencer_d:8548 depends_on: - geth - redis staker-unsafe: pid: host # allow debugging build: context: . target: nitro-node-dev ports: - "127.0.0.1:8047:8547" - "127.0.0.1:8048:8548" volumes: - "unsafestaker-data:/home/user/.arbitrum/local/nitro" - "l1keystore:/home/user/l1keystore" - "config:/config" command: --conf.file /config/unsafe_staker_config.json depends_on: - sequencer - redis poster: pid: host # allow debugging build: context: . target: nitro-node-dev ports: - "127.0.0.1:8147:8547" - "127.0.0.1:8148:8548" volumes: - "poster-data:/home/user/.arbitrum/local/nitro" - "l1keystore:/home/user/l1keystore" - "config:/config" command: --conf.file /config/poster_config.json depends_on: - geth - redis validator: pid: host # allow debugging build: context: . target: nitro-node-dev ports: - "127.0.0.1:8247:8547" - "127.0.0.1:8248:8548" volumes: - "validator-data:/home/user/.arbitrum/local/nitro" - "l1keystore:/home/user/l1keystore" - "config:/config" command: --conf.file /config/validator_config.json --http.port 8547 --http.api net,web3,arb,debug --ws.port 8548 depends_on: - sequencer testnode-scripts: build: testnode-scripts/ volumes: - "l1keystore:/home/user/l1keystore" - "config:/config" depends_on: - geth - redis relay: pid: host build: context: . target: nitro-node-dev ports: - "127.0.0.1:9652:9652" entrypoint: bin/relay command: --node.feed.output.port 9652 --node.feed.input.url ws://sequencer:9652 volumes: l1data: l1keystore: seqdata: seqdata_b: seqdata_c: seqdata_d: unsafestaker-data: validator-data: poster-data: config: postgres-data: