4 image: confluentinc/cp-kafka:7.5.1
7 KAFKA_LISTENERS: CONTROLLER://:9072, DOCKER://:9092, LOCALHOST://:9082
8 KAFKA_ADVERTISED_LISTENERS: DOCKER://kafka:9092, LOCALHOST://localhost:9082
9 KAFKA_INTER_BROKER_LISTENER_NAME: DOCKER
10 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT, DOCKER:PLAINTEXT, LOCALHOST:PLAINTEXT
11 KAFKA_PROCESS_ROLES: broker, controller
12 KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9072
13 KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
14 CLUSTER_ID: MkU3OEVBNTcwNTJENDM2Qk
15 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
16 KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
17 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
18 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
19 KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false"
23 stop_grace_period: 120s
28 #- "--log.level=DEBUG"
29 - "--api.insecure=true"
30 - "--providers.docker=true"
31 - "--providers.docker.exposedbydefault=false"
32 - "--entrypoints.web.address=:80"
37 - "/var/run/docker.sock:/var/run/docker.sock:ro"
41 image: juplo/wordcount--recorder:1.2.0
43 - "traefik.enable=true"
44 - "traefik.http.routers.recorder.rule=Host(`recorder.localhost`)"
45 - "traefik.http.routers.recorder.entrypoints=web"
47 juplo.wordcount.recorder.bootstrap-server: kafka:9092
52 image: juplo/wordcount--users:1.0.5
54 - "traefik.enable=true"
55 - "traefik.http.routers.users.rule=Host(`users.localhost`)"
56 - "traefik.http.routers.users.entrypoints=web"
58 juplo.wordcount.users.bootstrap-server: kafka:9092
63 image: juplo/wordcount--splitter:1.2.0
65 - "traefik.enable=true"
66 - "traefik.http.routers.splitter.rule=Host(`splitter.localhost`)"
67 - "traefik.http.routers.splitter.entrypoints=web"
69 juplo.wordcount.splitter.bootstrap-server: kafka:9092
74 image: juplo/wordcount--counter:1.3.1
76 - "traefik.enable=true"
77 - "traefik.http.routers.counter.rule=Host(`counter.localhost`)"
78 - "traefik.http.routers.counter.entrypoints=web"
80 juplo.wordcount.counter.bootstrap-server: kafka:9092
85 image: juplo/wordcount--top10:1.2.1
87 - "traefik.enable=true"
88 - "traefik.http.routers.top10.rule=Host(`top10.localhost`)"
89 - "traefik.http.routers.top10.entrypoints=web"
91 juplo.wordcount.top10.bootstrap-server: kafka:9092
96 image: juplo/wordcount--query:2.0.1
98 - "traefik.enable=true"
99 - "traefik.http.routers.query.rule=Host(`query.localhost`)"
100 - "traefik.http.routers.query.entrypoints=web"
102 juplo.wordcount.query.bootstrap-server: kafka:9092
108 image: juplo/wordcount--fortune:1.0.1
112 /usr/games/fortune chalkboard
114 | http -v recorder:8081/bart;
120 image: juplo/wordcount--fortune:1.0.1
124 /usr/games/fortune computers
125 | grep -v '^[[:space:]]*--'
126 | http -v recorder:8081/nerd;
132 image: juplo/wordcount--fortune:1.0.1
136 /usr/games/fortune riddles
137 | awk -F':' '/^Q/ { print $$2 }'
138 | http -v recorder:8081/riddler;
146 command: sleep infinity
147 stop_grace_period: 0s
158 cub kafka-ready -b kafka:9092 1 60 > /dev/null 2>&1 || exit 1
159 if [ -e INITIALIZED ]
161 echo -n Bereits konfiguriert:
163 kafka-topics --bootstrap-server kafka:9092 --describe --topic users
164 kafka-topics --bootstrap-server kafka:9092 --describe --topic recordings
165 kafka-topics --bootstrap-server kafka:9092 --describe --topic words
166 kafka-topics --bootstrap-server kafka:9092 --describe --topic countings
167 kafka-topics --bootstrap-server kafka:9092 --describe --topic top10
169 kafka-topics --bootstrap-server kafka:9092 \
173 kafka-topics --bootstrap-server kafka:9092 \
177 kafka-topics --bootstrap-server kafka:9092 \
181 kafka-topics --bootstrap-server kafka:9092 \
185 kafka-topics --bootstrap-server kafka:9092 \
189 kafka-topics --bootstrap-server kafka:9092 \
193 --replication-factor 1 \
194 --config min.insync.replicas=1 \
195 && echo Das Topic \'users\' wurde erfolgreich angelegt: \
196 && kafka-topics --bootstrap-server kafka:9092 --describe --topic users \
197 && kafka-topics --bootstrap-server kafka:9092 \
201 --replication-factor 1 \
202 --config min.insync.replicas=1 \
203 && echo Das Topic \'recordings\' wurde erfolgreich angelegt: \
204 && kafka-topics --bootstrap-server kafka:9092 --describe --topic recordings \
205 && kafka-topics --bootstrap-server kafka:9092 \
209 --replication-factor 1 \
210 --config min.insync.replicas=1 \
211 && echo Das Topic \'words\' wurde erfolgreich angelegt: \
212 && kafka-topics --bootstrap-server kafka:9092 --describe --topic words \
213 && kafka-topics --bootstrap-server kafka:9092 \
217 --replication-factor 1 \
218 --config min.insync.replicas=1 \
219 && echo Das Topic \'countings\' wurde erfolgreich angelegt: \
220 && kafka-topics --bootstrap-server kafka:9092 --describe --topic countings \
221 && kafka-topics --bootstrap-server kafka:9092 \
225 --replication-factor 1 \
226 --config min.insync.replicas=1 \
227 && echo Das Topic \'top10\' wurde erfolgreich angelegt: \
228 && kafka-topics --bootstrap-server kafka:9092 --describe --topic top10 \
229 && date > INITIALIZED
231 stop_grace_period: 0s
236 image: tchiotludo/akhq:0.18.0
238 - "traefik.enable=true"
239 - "traefik.http.routers.akhq.rule=Host(`akhq.localhost`)"
240 - "traefik.http.routers.akhq.entrypoints=web"
244 AKHQ_CONFIGURATION: |
249 bootstrap.servers: "kafka:9092"