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