85 lines
2.0 KiB
YAML
85 lines
2.0 KiB
YAML
|
|
version: '3.8'
|
||
|
|
|
||
|
|
services:
|
||
|
|
# NATS JetStream for message bus
|
||
|
|
nats:
|
||
|
|
image: nats:2.10-alpine
|
||
|
|
container_name: sentiment-nats
|
||
|
|
command: [-js, -m, "8222"]
|
||
|
|
ports:
|
||
|
|
- "4222:4222" # Client
|
||
|
|
- "8222:8222" # Monitoring
|
||
|
|
volumes:
|
||
|
|
- nats-data:/data
|
||
|
|
restart: unless-stopped
|
||
|
|
|
||
|
|
# ClickHouse for analytical storage
|
||
|
|
clickhouse:
|
||
|
|
image: clickhouse/clickhouse-server:24.3-alpine
|
||
|
|
container_name: sentiment-clickhouse
|
||
|
|
environment:
|
||
|
|
- CLICKHOUSE_DB=dolphin
|
||
|
|
- CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1
|
||
|
|
- CLICKHOUSE_USER=default
|
||
|
|
- CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD}
|
||
|
|
ports:
|
||
|
|
- "8123:8123" # HTTP
|
||
|
|
- "9000:9000" # Native
|
||
|
|
volumes:
|
||
|
|
- clickhouse-data:/var/lib/clickhouse
|
||
|
|
- ./clickhouse-config:/etc/clickhouse-server/config.d
|
||
|
|
ulimits:
|
||
|
|
nofile:
|
||
|
|
soft: 262144
|
||
|
|
hard: 262144
|
||
|
|
restart: unless-stopped
|
||
|
|
|
||
|
|
# Hazelcast for hot cache
|
||
|
|
hazelcast:
|
||
|
|
image: hazelcast/hazelcast:5.3-slim
|
||
|
|
container_name: sentiment-hazelcast
|
||
|
|
environment:
|
||
|
|
- HZ_CLUSTERNAME=dolphin
|
||
|
|
- HZ_NETWORK_PUBLICADDRESS=localhost:5701
|
||
|
|
ports:
|
||
|
|
- "5701:5701"
|
||
|
|
volumes:
|
||
|
|
- hazelcast-data:/data
|
||
|
|
restart: unless-stopped
|
||
|
|
|
||
|
|
# Prefect for workflow orchestration
|
||
|
|
prefect:
|
||
|
|
image: prefecthq/prefect:3-python3.12
|
||
|
|
container_name: sentiment-prefect
|
||
|
|
command: prefect server start --host 0.0.0.0
|
||
|
|
ports:
|
||
|
|
- "4200:4200"
|
||
|
|
environment:
|
||
|
|
- PREFECT_API_URL=http://localhost:4200/api
|
||
|
|
- PREFECT_UI_URL=http://localhost:4200
|
||
|
|
volumes:
|
||
|
|
- prefect-data:/root/.prefect
|
||
|
|
restart: unless-stopped
|
||
|
|
|
||
|
|
# Prefect worker for flow execution
|
||
|
|
prefect-worker:
|
||
|
|
image: prefecthq/prefect:3-python3.12
|
||
|
|
container_name: sentiment-prefect-worker
|
||
|
|
command: prefect worker start --pool sentiment-engine
|
||
|
|
environment:
|
||
|
|
- PREFECT_API_URL=http://prefect:4200/api
|
||
|
|
depends_on:
|
||
|
|
- prefect
|
||
|
|
restart: unless-stopped
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
nats-data:
|
||
|
|
clickhouse-data:
|
||
|
|
hazelcast-data:
|
||
|
|
prefect-data:
|
||
|
|
latticedb-data:
|
||
|
|
|
||
|
|
networks:
|
||
|
|
default:
|
||
|
|
name: sentiment-network
|