market-scope / docker-compose.yml
SNAPKITTYWEST's picture
push from SNAPKITTYWEST/market-scope
8f5564f verified
Raw
History Blame Contribute Delete
4.39 kB
version: "3.8"
services:
# ── Prolog Logic Engine ──────────────────────────────────────────────────────
logic-engine:
image: swipl/swipl:stable
container_name: marketscope-logic
ports:
- "8080:8080"
volumes:
- ./packages/prolog-rules:/rules:ro
- ./apps/logic-engine/server.pl:/app/server.pl:ro
command: >
swipl /app/server.pl
--port 8080
--rules-dir /rules
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 10s
timeout: 5s
retries: 3
networks:
- marketnet
# ── Rust Ingestor ───────────────────────────────────────────────────────────
ingestor:
build:
context: ./apps/ingestor
dockerfile: Dockerfile
container_name: marketscope-ingestor
ports:
- "3001:3001"
environment:
- PLASMA_GATE_KEY=${PLASMA_GATE_KEY}
- REDIS_URL=redis://redis:6379
- LOGIC_ENGINE_URL=http://logic-engine:8080
- WORM_ENDPOINT=http://auditor:8090
depends_on:
- logic-engine
- redis
- auditor
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3001/health"]
interval: 10s
timeout: 5s
retries: 3
networks:
- marketnet
# ── Quant Engine (Python) ───────────────────────────────────────────────────
quant-engine:
build:
context: ./apps/quant-engine
dockerfile: Dockerfile
container_name: marketscope-quant
ports:
- "8081:8081"
environment:
- WORM_ENDPOINT=http://auditor:8090
- LOGIC_ENGINE_URL=http://logic-engine:8080
depends_on:
- logic-engine
- auditor
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8081/health"]
interval: 10s
timeout: 5s
retries: 3
networks:
- marketnet
# ── Auditor (WORM Chain) ────────────────────────────────────────────────────
auditor:
build:
context: ./apps/auditor
dockerfile: Dockerfile
container_name: marketscope-auditor
ports:
- "8090:8090"
volumes:
- worm-data:/worm
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8090/health"]
interval: 10s
timeout: 5s
retries: 3
networks:
- marketnet
# ── Council UI (Next.js) ────────────────────────────────────────────────────
council-ui:
build:
context: ./apps/council-ui
dockerfile: Dockerfile
container_name: marketscope-ui
ports:
- "3000:3000"
environment:
- INGESTOR_URL=http://ingestor:3001
- QUANT_URL=http://quant-engine:8081
- AUDITOR_URL=http://auditor:8090
depends_on:
- ingestor
- quant-engine
- auditor
networks:
- marketnet
# ── Redis (Feature Cache) ───────────────────────────────────────────────────
redis:
image: redis:7-alpine
container_name: marketscope-redis
ports:
- "6379:6379"
volumes:
- redis-data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 3
networks:
- marketnet
# ── DuckDB (Feature Store) ──────────────────────────────────────────────────
duckdb:
image: cynerd/duckdb:latest
container_name: marketscope-duckdb
ports:
- "19275:19275"
volumes:
- duckdb-data:/data
networks:
- marketnet
volumes:
worm-data:
redis-data:
duckdb-data:
networks:
marketnet:
driver: bridge