Files
sentiment-engine/sentiment_engine/docker/docker-compose.yml

85 lines
2.0 KiB
YAML
Raw Normal View History

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