| version: "3.8"
|
|
|
| services:
|
|
|
| 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
|
|
|
|
|
| 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:
|
| 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:
|
| 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:
|
| 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:
|
| 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:
|
| 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
|
|
|