-
Notifications
You must be signed in to change notification settings - Fork 0
/
kafka-docker-compose.yaml
80 lines (74 loc) · 2.24 KB
/
kafka-docker-compose.yaml
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
version: "3.9"
name: "kafka-dotnet-example"
services:
zookeeper:
image: docker.io/bitnami/zookeeper:3.8.1
container_name: zookeeper
ports:
- 2181:2181
volumes:
- ${ZOOKEEPER_DATA_DIR}:/bitnami/zookeeper
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
networks:
- kafka-internal
kafka:
image: docker.io/bitnami/kafka:3.4.1
container_name: kafka
ports:
- 9093:9093
volumes:
- ${KAFKA_DATA_DIR}:/bitnami/kafka
environment:
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_ENABLE_KRAFT=no
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
- KAFKA_BROKER_ID=1
- KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CLIENT:PLAINTEXT,EXTERNAL:PLAINTEXT
- KAFKA_CFG_LISTENERS=CLIENT://:9092,EXTERNAL://:9093
- KAFKA_CFG_ADVERTISED_LISTENERS=CLIENT://kafka:9092,EXTERNAL://localhost:9093
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=CLIENT
depends_on:
- zookeeper
networks:
- kafka-internal
# create kafka topic
kafka-init:
image: docker.io/bitnami/kafka:3.4.1
container_name: kafka-init
depends_on:
kafka:
condition: service_started
entrypoint: ['/bin/sh', '-c']
command: |
"
# blocks until kafka is reachable
./opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server kafka:9092 --list
echo -e 'Creating kafka topics'
./opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server kafka:9092 --create --if-not-exists --topic topic-1p --partitions 1
./opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server kafka:9092 --create --if-not-exists --topic topic-3p --partitions 3
echo -e 'Successfully created the following topics:'
./opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server kafka:9092 --list
"
networks:
- kafka-internal
akhq:
image: tchiotludo/akhq:0.24.0
container_name: akhq
environment:
AKHQ_CONFIGURATION: |
akhq:
connections:
docker-kafka-server:
properties:
bootstrap.servers: "kafka:9092"
ports:
- 28080:8080
depends_on:
- kafka
networks:
- kafka-internal
networks:
kafka-internal:
name: kafka-internal