Repository navigation
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
64 lines (60 loc) · 1.82 KB
/
Copy pathdocker-compose.yaml
File metadata and controls
64 lines (60 loc) · 1.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
services:
# MongoDB (Replica Set for transaction support)
mongodb:
image: mongo:latest
container_name: cartai-mongodb
ports:
- "27017:27017"
volumes:
- mongo_data:/data/db
command: [ "--replSet", "rs0" ]
healthcheck:
test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'localhost:27017'}]}) }" | mongosh --quiet
interval: 10s
timeout: 10s
retries: 5
start_period: 15s
# Apache Kafka (KRaft mode, no Zookeeper)
kafka:
image: apache/kafka:latest
container_name: cartai-kafka
ports:
- "9092:9092"
environment:
KAFKA_NODE_ID: 1
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@localhost:9093
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_LOG_DIRS: /tmp/kraft-combined-logs
CLUSTER_ID: MkU3OEVBNTcwNTJENDM2Qk
# MinIO (S3 Compatible Storage)
minio:
image: minio/minio:latest
container_name: cartai-minio
ports:
- "9000:9000"
- "9001:9001"
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
command: server /data --console-address ":9001"
volumes:
- minio_data:/data
# # Redis (Optional - for distributed token blacklist)
# redis:
# image: redis:alpine
# container_name: cartai-redis
# ports:
# - "6379:6379"
# volumes:
# - redis_data:/data
volumes:
mongo_data:
minio_data:
# redis_data: