WIP
[demos/kafka/training] / docker-compose.yml
1 version: '3.2'
2 services:
3   kafka-1:
4     image: confluentinc/cp-kafka:7.2.2
5     ports:
6       - 9081:9081
7     volumes:
8       - ./kafka-1.properties:/etc/kafka/kafka.properties:ro
9       - data-1:/var/lib/data/kafka
10
11   kafka-2:
12     image: confluentinc/cp-kafka:7.2.2
13     ports:
14       - 9092:9082
15       - 9082:9082
16     networks:
17       default:
18         aliases:
19           - kafka
20     volumes:
21       - ./kafka-2.properties:/etc/kafka/kafka.properties:ro
22       - data-2:/var/lib/data/kafka
23
24   kafka-3:
25     image: confluentinc/cp-kafka:7.2.2
26     ports:
27       - 9083:9083
28     volumes:
29       - ./kafka-3.properties:/etc/kafka/kafka.properties:ro
30       - data-3:/var/lib/data/kafka
31
32   setup:
33     image: juplo/toolbox
34     command: >
35       bash -c "
36         kafka-topics --bootstrap-server kafka:9092 --delete --if-exists --topic test
37         kafka-topics --bootstrap-server kafka:9092 --create --topic test --partitions 2 --replication-factor 3 --config min.insync.replicas=2
38         kafka-topics --bootstrap-server kafka:9092 --describe --topic test
39       "
40
41   cli:
42     image: juplo/toolbox
43     command: sleep infinity
44
45   producer:
46     image: juplo/simple-producer:1.0-SNAPSHOT
47     command: producer
48
49   consumer-1:
50     image: juplo/simple-consumer:1.0-SNAPSHOT
51     command: kafka:9092 test my-group consumer-1
52
53   consumer-2:
54     image: juplo/simple-consumer:1.0-SNAPSHOT
55     command: kafka:9092 test my-group consumer-2
56
57   consumer-3:
58     image: juplo/simple-consumer:1.0-SNAPSHOT
59     command: kafka:9092 test my-group consumer-3
60
61   spikzettel:
62     image: juplo/toolbox
63     command: >
64       bash -c '
65         kafka-console-consumer \
66           --bootstrap-server kafka:9092 \
67           --topic __consumer_offsets --from-beginning \
68           --formatter "kafka.coordinator.group.GroupMetadataManager\$$OffsetsMessageFormatter"
69       '
70
71 volumes:
72   data-1:
73   data-2:
74   data-3: