Removed the automatic update of submodules during a rebuild
[demos/kafka/wordcount] / docker-compose.yml
1 version: '3.2'
2 services:
3   zookeeper:
4     image: confluentinc/cp-zookeeper:6.2.0
5     environment:
6       ZOOKEEPER_CLIENT_PORT: 2181
7     ports:
8       - 2181:2181
9
10   kafka:
11     image: confluentinc/cp-kafka:6.2.0
12     environment:
13       KAFKA_BROKER_ID: 1
14       KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
15       KAFKA_LISTENERS: DOCKER://:9092, LOCALHOST://:9082
16       KAFKA_ADVERTISED_LISTENERS: DOCKER://kafka:9092, LOCALHOST://localhost:9082
17       KAFKA_INTER_BROKER_LISTENER_NAME: DOCKER
18       KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: DOCKER:PLAINTEXT, LOCALHOST:PLAINTEXT
19       KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
20       KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false"
21     ports:
22       - 9092:9082
23       - 9082:9082
24     depends_on:
25       - zookeeper
26
27   recorder:
28     image: juplo/wordcount--recorder:1.0.0
29     environment:
30       juplo.wordcount.recorder.bootstrap-server: kafka:9092
31       juplo.wordcount.recorder.topic: recordings
32     ports:
33       - 8081:8080
34     depends_on:
35       - kafka
36
37   users:
38     image: juplo/wordcount--users:1.0.2
39     environment:
40       juplo.wordcount.users.bootstrap-server: kafka:9092
41       juplo.wordcount.users.topic: users
42     ports:
43       - 8082:8080
44     depends_on:
45       - kafka
46
47   counter:
48     image: juplo/wordcount--counter:1.0.0
49     environment:
50       juplo.wordcount.counter.bootstrap-server: kafka:9092
51       juplo.wordcount.counter.application-id: counter
52       juplo.wordcount.counter.input-topic: recordings
53       juplo.wordcount.counter.output-topic: countings
54     ports:
55       - 8083:8080
56     depends_on:
57       - kafka
58
59   top10:
60     image: juplo/wordcount--top10:1.0.0
61     environment:
62       juplo.wordcount.top10.bootstrap-server: kafka:9092
63       juplo.wordcount.top10.application-id: top10
64       juplo.wordcount.top10.input-topic: countings
65       juplo.wordcount.top10.output-topic: top10
66     ports:
67       - 8084:8080
68     depends_on:
69       - kafka
70
71   query:
72     image: juplo/wordcount--query:1.0.2
73     environment:
74       juplo.wordcount.query.bootstrap-server: kafka:9092
75       juplo.wordcount.query.application-id: query
76       juplo.wordcount.query.ranking-input-topic: top10
77       juplo.wordcount.query.users-input-topic: users
78     ports:
79       - 8085:8080
80     depends_on:
81       - kafka
82
83   bart:
84     image: juplo/wordcount--fortune:1.0.0
85     command: bash -c "
86       while [ true ];
87       do
88         /usr/games/fortune chalkboard
89           | head -1
90           | http -v recorder:8080/bart;
91         echo;
92         sleep 1;
93       done"
94
95   nerd:
96     image: juplo/wordcount--fortune:1.0.0
97     command: bash -c "
98       while [ true ];
99       do
100         /usr/games/fortune computers
101           | grep  -v '^[[:space:]]*--'
102           | http -v recorder:8080/nerd;
103         echo;
104         sleep 1;
105       done"
106
107   riddler:
108     image: juplo/wordcount--fortune:1.0.0
109     command: bash -c "
110       while [ true ];
111       do
112         /usr/games/fortune riddles
113           | awk -F':' '/^Q/ { print $$2 }'
114           | http -v recorder:8080/riddler;
115         echo;
116         sleep 1;
117       done"
118
119   cli:
120     image: juplo/toolbox
121     command: bash -c "
122       cub kafka-ready -b kafka:9092 1 60 ;
123       kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --topic recordings ;
124       kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --topic users ;
125       kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --topic countings ;
126       kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --topic top10 ;
127       sleep infinity"
128
129 networks:
130   default:
131     external:
132       name: trion