docker/devnet/docker-compose.yml
version: '3.4'
# This compose file is expected to be used from make and not independently.
volumes:
chain_a_data:
chain_b_data:
chain_c_data:
guard_data:
notary43_data:
scribe_data:
prometheus-data:
badger-data:
notary44_data:
executor_data:
services:
guard:
restart: unless-stopped
entrypoint: agents
depends_on:
- omnirpc
- scribe
build:
context: ../../
dockerfile: docker/devnet/agents.Dockerfile
volumes:
- '${PWD}/config/guard-config.yml:/config/guard-config.yml'
- '${PWD}/config/guard-bonded-signer.txt:/config/guard-bonded-signer.txt'
- guard_data:/data
command:
- 'guard-run'
- '--config'
- '/config/guard-config.yml'
environment:
METRICS_HANDLER: jaeger
JAEGER_ENDPOINT: 'http://tracing:14268/api/traces'
GOLOG_LOG_LEVEL: debug
notary-43:
entrypoint: agents
restart: unless-stopped
depends_on:
- omnirpc
build:
context: ../../
dockerfile: docker/devnet/agents.Dockerfile
volumes:
- '${PWD}/config/notary43-config.yml:/config/notary-config.yml'
- '${PWD}/config/notary43-bonded-signer.txt:/config/notary-bonded-signer.txt'
- notary43_data:/config/synapse.db
command:
- 'notary-run'
- '--config'
- '/config/notary-config.yml'
- '--debug'
environment:
METRICS_HANDLER: jaeger
JAEGER_ENDPOINT: 'http://tracing:14268/api/traces'
GOLOG_LOG_LEVEL: debug
notary-44:
entrypoint: agents
restart: unless-stopped
depends_on:
- omnirpc
build:
context: ../../
dockerfile: docker/devnet/agents.Dockerfile
volumes:
- '${PWD}/config/notary44-config.yml:/config/notary-config.yml'
- '${PWD}/config/notary44-bonded-signer.txt:/config/notary-bonded-signer.txt'
- notary44_data:/config/synapse.db
command:
- 'notary-run'
- '--config'
- '/config/notary-config.yml'
- '--debug'
environment:
METRICS_HANDLER: jaeger
JAEGER_ENDPOINT: 'http://tracing:14268/api/traces'
GOLOG_LOG_LEVEL: debug
executor:
entrypoint: agents
restart: unless-stopped
depends_on:
- omnirpc
build:
context: ../../
dockerfile: docker/devnet/agents.Dockerfile
volumes:
- '${PWD}/config/executor-config.yml:/config/executor-config.yml'
- '${PWD}/config/executor-signer.txt:/config/executor-signer.txt'
- executor_data:/config/synapse.db
command:
- 'executor-run'
- '--config'
- '/config/executor-config.yml'
- '--debug'
environment:
METRICS_HANDLER: jaeger
JAEGER_ENDPOINT: 'http://tracing:14268/api/traces'
GOLOG_LOG_LEVEL: debug
scribe-indexer:
depends_on:
- omnirpc
build:
context: ../../
dockerfile: docker/devnet/scribe.Dockerfile
entrypoint: scribe
restart: unless-stopped
command: >
scribe
--config=/config/scribe.yaml
--db=sqlite
--path=/data
volumes:
- '${PWD}/config/scribe-indexer-config.yaml:/config/scribe.yaml'
- scribe_data:/data
environment:
METRICS_HANDLER: jaeger
JAEGER_ENDPOINT: 'http://tracing:14268/api/traces'
GOLOG_LOG_LEVEL: debug
scribe:
restart: unless-stopped
depends_on:
- scribe-indexer
build:
context: ../../
dockerfile: docker/devnet/scribe.Dockerfile
entrypoint: scribe
command: >
server
--port=9002
--db=sqlite
--path=/data
--omnirpc=http://omnirpc:9001
volumes:
- scribe_data:/data
environment:
METRICS_HANDLER: jaeger
JAEGER_ENDPOINT: 'http://tracing:14268/api/traces'
GOLOG_LOG_LEVEL: debug
ports:
- '9002:9002'
omnirpc:
restart: unless-stopped
depends_on:
- chain_a
- chain_b
- chain_c
- tracing
build:
context: ../../
dockerfile: docker/devnet/omnirpc.Dockerfile
ports:
- '9001:9001'
command: >
omnirpc
server
--config=/config/omnirpc.yaml
volumes:
- '${PWD}/config/omnirpc.yaml:/config/omnirpc.yaml'
environment:
METRICS_HANDLER: jaeger
JAEGER_ENDPOINT: 'http://tracing:14268/api/traces'
# TODO, consider re-enabling.
# healthcheck:
# test: ['CMD', 'curl', '-f', 'http://localhost:8545/health']
# interval: 1s
# timeout: 20s
# retries: 10
# start_period: 5s
chain_a:
restart: unless-stopped
image: 'ghcr.io/foundry-rs/foundry:latest'
entrypoint: anvil
command: >
--host=0.0.0.0
--chain-id=42
--allow-origin='*'
--steps-tracing
--mnemonic='tag volcano eight thank tide danger coast health above argue embrace heavy'
--base-fee=1
--gas-limit=100000000
--state=/data/
ports:
- '8042:8545'
volumes:
- chain_a_data:/data
chain_b:
restart: unless-stopped
image: 'ghcr.io/foundry-rs/foundry:latest'
entrypoint: anvil
command: >
--host=0.0.0.0
--chain-id=43
--allow-origin='*'
--steps-tracing
--mnemonic='tag volcano eight thank tide danger coast health above argue embrace heavy'
--base-fee=1
--gas-limit=100000000
--state=/data/
ports:
- '8043:8545'
volumes:
- chain_b_data:/data
chain_c:
restart: unless-stopped
image: 'ghcr.io/foundry-rs/foundry:latest'
entrypoint: anvil
command: >
--host=0.0.0.0
--chain-id=44
--allow-origin='*'
--steps-tracing
--mnemonic='tag volcano eight thank tide danger coast health above argue embrace heavy'
--base-fee=1
--gas-limit=100000000
--state=/data/
ports:
- '8044:8545'
volumes:
- chain_b_data:/data
tracing:
restart: unless-stopped
image: jaegertracing/all-in-one:latest
ports:
- 6831:6831/udp
- 6832:6832/udp
- 5778:5778
- 16686:16686
- 4317:4317
- 4318:4318
- 14250:14250
- 14268:14268
- 14269:14269
- 9411:9411
environment:
SPAN_STORAGE_TYPE: 'badger'
BADGER_EPHEMERAL: 'false'
BADGER_DIRECTORY_VALUE: '/badger/data'
BADGER_DIRECTORY_KEY: '/badger/key'
volumes:
- badger-data:/badger
prometheus:
restart: unless-stopped
image: prom/prometheus:v2.46.0
ports:
- 9000:9090
volumes:
- '${PWD}/config/prometheus:/etc/prometheus'
- prometheus-data:/prometheus
command: --web.enable-lifecycle --config.file=/etc/prometheus/prometheus.yml