-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.load.yml
More file actions
100 lines (96 loc) · 3.17 KB
/
docker-compose.load.yml
File metadata and controls
100 lines (96 loc) · 3.17 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
90
91
92
93
94
95
96
97
98
99
100
services:
telegram-proxy:
environment:
PRECONFIGURED_BOTS_FILE: /code/load/preconfigured_bots.load.json
PRECONFIGURED_BOTS: "[]"
BINDING_SOURCE: preconfigured
BINDING_ADMIN_ENABLED: "false"
WORKER_CONSUMER_GROUP: telegram-proxy-load-workers
volumes:
- ./load:/code/load:ro
worker:
environment:
PRECONFIGURED_BOTS_FILE: /code/load/preconfigured_bots.load.json
PRECONFIGURED_BOTS: "[]"
BINDING_SOURCE: preconfigured
BINDING_ADMIN_ENABLED: "false"
WORKER_CONSUMER_GROUP: telegram-proxy-load-workers
volumes:
- ./load:/code/load:ro
kafka-init:
image: bitnamilegacy/kafka:4.0.0-debian-12-r10
depends_on:
kafka:
condition: service_started
environment:
KAFKA_COMMANDS_TOPIC: ${KAFKA_COMMANDS_TOPIC:-telegram-proxy-commands}
KAFKA_COMMANDS_DLQ_TOPIC: ${KAFKA_COMMANDS_DLQ_TOPIC:-telegram-proxy-commands-dlq}
KAFKA_LOAD_PARTITIONS: ${KAFKA_LOAD_PARTITIONS:-12}
command:
- /bin/bash
- -ec
- |
until /opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server kafka:9092 --list >/dev/null 2>&1; do
sleep 1
done
/opt/bitnami/kafka/bin/kafka-topics.sh \
--bootstrap-server kafka:9092 \
--create \
--if-not-exists \
--topic "$${KAFKA_COMMANDS_TOPIC}" \
--partitions "$${KAFKA_LOAD_PARTITIONS}" \
--replication-factor 1
/opt/bitnami/kafka/bin/kafka-topics.sh \
--bootstrap-server kafka:9092 \
--create \
--if-not-exists \
--topic "$${KAFKA_COMMANDS_DLQ_TOPIC}" \
--partitions "$${KAFKA_LOAD_PARTITIONS}" \
--replication-factor 1
restart: "no"
load-fake-webhook:
build:
context: .
dockerfile: Dockerfile
command: ["uvicorn", "load.fake_webhook:app", "--host", "0.0.0.0", "--port", "8090"]
ports:
- "8090:8090"
volumes:
- ./load:/code/load:ro
environment:
LOAD_WEBHOOK_SECRET: ${LOAD_WEBHOOK_SECRET:-load-webhook-secret}
LOAD_WEBHOOK_DELAY_MS: ${LOAD_WEBHOOK_DELAY_MS:-0}
LOAD_WEBHOOK_FAIL_RATE: ${LOAD_WEBHOOK_FAIL_RATE:-0}
depends_on:
telegram-proxy:
condition: service_started
restart: unless-stopped
locust:
image: locustio/locust:2.43.4
command:
- -f
- /mnt/locust/locustfile.py
- --host
- http://telegram-proxy:8000
ports:
- "8089:8089"
volumes:
- ./load:/mnt/locust:ro
environment:
LOAD_WEBHOOK_BASE_URL: http://load-fake-webhook:8090
LOAD_WEBHOOK_URL: http://load-fake-webhook:8090/webhook
LOAD_WEBHOOK_SECRET: ${LOAD_WEBHOOK_SECRET:-load-webhook-secret}
LOAD_CHAT_MODE: ${LOAD_CHAT_MODE:-many}
LOAD_CHAT_COUNT: ${LOAD_CHAT_COUNT:-1000}
LOAD_WAIT_FOR_DELIVERY: ${LOAD_WAIT_FOR_DELIVERY:-true}
LOAD_DELIVERY_TIMEOUT_SECONDS: ${LOAD_DELIVERY_TIMEOUT_SECONDS:-10}
depends_on:
kafka-init:
condition: service_completed_successfully
telegram-proxy:
condition: service_started
worker:
condition: service_started
load-fake-webhook:
condition: service_started
restart: unless-stopped