Problem
The two Docker Compose files (docker-compose.yml for the processor stack and indexer/docker-compose.yml for the indexer stack) have two issues:
1. Outdated service versions
| Service |
Current |
Latest stable |
Notes |
| PostgreSQL |
16 |
17 |
PG 17 includes performance improvements, better JSON handling, and security fixes |
| CockroachDB |
v22.2.2 |
v22.2.15 |
v22.2.2 has known stability issues. v22.2.15 includes crash fixes, memory leak patches, and query optimizer improvements across 13 patch releases |
| substrate-gateway |
2.5.0 |
2.7.0 |
Newer gateway versions include retriable error handling (521-523), retry-after header support, and connection leak fixes |
2. No shared Docker network
The indexer and processor stacks run on separate Docker networks by default. The processor cannot reach the indexer gateway by service name. This forces workarounds:
- Using the Docker bridge gateway IP (
http://172.x.x.1:8888/graphql) which varies per host
- Or publishing the gateway port and connecting via
localhost:8888 which doesn't work from inside a container
Both workarounds are fragile and have caused deployment issues (see debug report from devnet deployment).
Additionally, both stacks have a service named db (PostgreSQL and CockroachDB). When connected to the same network (e.g., via docker network connect), Docker DNS resolves db to multiple IPs, causing services to connect to the wrong database.
Problem
The two Docker Compose files (
docker-compose.ymlfor the processor stack andindexer/docker-compose.ymlfor the indexer stack) have two issues:1. Outdated service versions
2. No shared Docker network
The indexer and processor stacks run on separate Docker networks by default. The processor cannot reach the indexer gateway by service name. This forces workarounds:
http://172.x.x.1:8888/graphql) which varies per hostlocalhost:8888which doesn't work from inside a containerBoth workarounds are fragile and have caused deployment issues (see debug report from devnet deployment).
Additionally, both stacks have a service named
db(PostgreSQL and CockroachDB). When connected to the same network (e.g., viadocker network connect), Docker DNS resolvesdbto multiple IPs, causing services to connect to the wrong database.