Demonstration für das Wordcount-Beispiel angepasst
[demos/kafka/training] / docker-compose.yml
1 version: '3.2'
2 services:
3   zookeeper:
4     image: confluentinc/cp-zookeeper:7.1.3
5     environment:
6       ZOOKEEPER_CLIENT_PORT: 2181
7     ports:
8       - 2181:2181
9
10   kafka:
11     image: confluentinc/cp-kafka:7.1.3
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   mongo:
28     image: mongo:4.4.13
29     ports:
30       - 27017:27017
31     environment:
32       MONGO_INITDB_ROOT_USERNAME: juplo
33       MONGO_INITDB_ROOT_PASSWORD: training
34
35   express:
36     image: mongo-express
37     ports:
38       - 8090:8081
39     environment:
40       ME_CONFIG_MONGODB_ADMINUSERNAME: juplo
41       ME_CONFIG_MONGODB_ADMINPASSWORD: training
42       ME_CONFIG_MONGODB_URL: mongodb://juplo:training@mongo:27017/
43     depends_on:
44       - mongo
45
46   setup:
47     image: juplo/toolbox
48     command: >
49       bash -c "
50         kafka-topics --bootstrap-server kafka:9092 --delete --if-exists --topic test
51         kafka-topics --bootstrap-server kafka:9092 --create --topic test --partitions 2
52       "
53
54   cli:
55     image: juplo/toolbox
56     command: sleep infinity
57
58   bart:
59     image: juplo/wordcount--fortune:1.0.0
60     command: bash -c "
61       while [ true ];
62       do
63         /usr/games/fortune chalkboard
64           | head -1
65           | http -v producer:8080/bart;
66         echo;
67         sleep 1;
68       done"
69
70   nerd:
71     image: juplo/wordcount--fortune:1.0.0
72     command: bash -c "
73       while [ true ];
74       do
75         /usr/games/fortune computers
76           | grep  -v '^[[:space:]]*--'
77           | http -v producer:8080/nerd;
78         echo;
79         sleep 1;
80       done"
81
82   riddler:
83     image: juplo/wordcount--fortune:1.0.0
84     command: bash -c "
85       while [ true ];
86       do
87         /usr/games/fortune riddles
88           | awk -F':' '/^Q/ { print $$2 }'
89           | http -v producer:8080/riddler;
90         echo;
91         sleep 1;
92         sleep 1;
93       done"
94
95   kraut:
96     image: juplo/wordcount--fortune:1.0.0
97     command: bash -c "
98       while [ true ];
99       do
100         /usr/games/fortune de
101           | http -v producer:8080/kraut;
102         echo;
103         sleep 1;
104       done"
105
106   poet:
107     image: juplo/wordcount--fortune:1.0.0
108     command: bash -c "
109       while [ true ];
110       do
111         /usr/games/fortune songs-poems
112           | http -v producer:8080/poet;
113         echo;
114         sleep 1;
115       done"
116
117   linux:
118     image: juplo/wordcount--fortune:1.0.0
119     command: bash -c "
120       while [ true ];
121       do
122         /usr/games/fortune linux
123           | http -v producer:8080/linux;
124         echo;
125         sleep 1;
126       done"
127
128   producer:
129     image: juplo/rest-producer:1.0-SNAPSHOT
130     ports:
131       - 8080:8080
132     environment:
133       server.port: 8080
134       producer.bootstrap-server: kafka:9092
135       producer.client-id: producer
136       producer.topic: test
137
138   consumer-1:
139     image: juplo/wordcount:1.0-SNAPSHOT
140     ports:
141       - 8081:8080
142     environment:
143       server.port: 8080
144       consumer.bootstrap-server: kafka:9092
145       consumer.client-id: consumer-1
146       consumer.topic: test
147       spring.data.mongodb.uri: mongodb://juplo:training@mongo:27017
148       spring.data.mongodb.database: juplo
149
150   consumer-2:
151     image: juplo/wordcount:1.0-SNAPSHOT
152     ports:
153       - 8082:8080
154     environment:
155       server.port: 8080
156       consumer.bootstrap-server: kafka:9092
157       consumer.client-id: consumer-2
158       consumer.topic: test
159       spring.data.mongodb.uri: mongodb://juplo:training@mongo:27017
160       spring.data.mongodb.database: juplo