forked from ag2ai/faststream
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
89 lines (83 loc) · 2.54 KB
/
Copy pathdocker-compose.yaml
File metadata and controls
89 lines (83 loc) · 2.54 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
services:
rabbitmq:
image: rabbitmq:3.13-alpine
ports:
- "5672:5672"
security_opt:
- no-new-privileges:true
kafka:
image: confluentinc/cp-kafka:8.0.0
ports:
- "9092:9092"
environment:
KAFKA_NODE_ID: "1"
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT"
KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://127.0.0.1:9092"
KAFKA_PROCESS_ROLES: "broker,controller"
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_BROKER_ID: "1"
KAFKA_CONTROLLER_QUORUM_VOTERS: "1@kafka:9093"
KAFKA_LISTENERS: "PLAINTEXT://:9092,CONTROLLER://:9093"
KAFKA_INTER_BROKER_LISTENER_NAME: "PLAINTEXT"
KAFKA_CONTROLLER_LISTENER_NAMES: "CONTROLLER"
CLUSTER_ID: "MkU3OEVBNTcwNTJENDM2Qk"
security_opt:
- no-new-privileges:true
nats:
image: nats
command: -js
ports:
- 4222:4222
- 8222:8222 # management
security_opt:
- no-new-privileges:true
redis:
image: redis:alpine
ports:
- 6379:6379
security_opt:
- no-new-privileges:true
redis-cluster:
image: redis:7-alpine
network_mode: host
healthcheck:
test: redis-cli -p 7001 ping || exit 1
interval: 2s
timeout: 3s
retries: 40
start_period: 5s
command:
- sh
- -c
- |
redis-server --port 7001 --cluster-enabled yes --cluster-config-file nodes-1.conf --cluster-node-timeout 5000 --appendonly no --save '' &
redis-server --port 7002 --cluster-enabled yes --cluster-config-file nodes-2.conf --cluster-node-timeout 5000 --appendonly no --save '' &
redis-server --port 7003 --cluster-enabled yes --cluster-config-file nodes-3.conf --cluster-node-timeout 5000 --appendonly no --save '' &
for p in 7001 7002 7003; do
echo "waiting for port $$p ..."
until redis-cli -p $$p ping 2>/dev/null; do sleep 0.5; done
done &&
i=0
while [ $$i -lt 10 ]; do
echo "Creating cluster (attempt $$((i+1)))..."
echo yes | redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 --cluster-replicas 0 && break
i=$$((i+1))
sleep 1
done &&
echo 'Redis Cluster ready' &&
tail -f /dev/null
artemis:
image: apache/activemq-artemis:latest-alpine
environment:
ANONYMOUS_LOGIN: "true"
ports:
- "1883:1883"
security_opt:
- no-new-privileges:true
faststream:
build: .
volumes:
- ./:/src
- /src/.venv/
network_mode: "host"
tty: true