5 image: confluentinc/cp-kafka:7.5.1
8 KAFKA_LISTENERS: CONTROLLER://:9072, DOCKER://:9092, LOCALHOST://:9082
9 KAFKA_ADVERTISED_LISTENERS: DOCKER://kafka:9092, LOCALHOST://localhost:9082
10 KAFKA_INTER_BROKER_LISTENER_NAME: DOCKER
11 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT, DOCKER:PLAINTEXT, LOCALHOST:PLAINTEXT
12 KAFKA_PROCESS_ROLES: broker, controller
13 KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9072
14 KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
15 CLUSTER_ID: MkU3OEVBNTcwNTJENDM2Qk
16 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
17 KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
18 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
19 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
20 KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false"
24 stop_grace_period: 120s
29 #- "--log.level=DEBUG"
30 - "--api.insecure=true"
31 - "--providers.docker=true"
32 - "--providers.docker.exposedbydefault=false"
33 - "--entrypoints.web.address=:80"
38 - "/var/run/docker.sock:/var/run/docker.sock:ro"
41 image: juplo/wordcount--recorder:1.0.1
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.4
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.0.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.1.0
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.0.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:1.0.4
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
107 image: juplo/wordcount--fortune:1.0.0
111 /usr/games/fortune chalkboard
113 | http -v recorder:8081/bart;
119 image: juplo/wordcount--fortune:1.0.0
123 /usr/games/fortune computers
124 | grep -v '^[[:space:]]*--'
125 | http -v recorder:8081/nerd;
131 image: juplo/wordcount--fortune:1.0.0
135 /usr/games/fortune riddles
136 | awk -F':' '/^Q/ { print $$2 }'
137 | http -v recorder:8081/riddler;
145 cub kafka-ready -b kafka:9092 1 60 ;
146 kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --if-not-exists --topic recordings ;
147 kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --if-not-exists --topic users ;
148 kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --if-not-exists --topic words ;
149 kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --if-not-exists --topic countings ;
150 kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --if-not-exists --topic top10 ;
154 image: tchiotludo/akhq:0.18.0
156 - "traefik.enable=true"
157 - "traefik.http.routers.akhq.rule=Host(`akhq.localhost`)"
158 - "traefik.http.routers.akhq.entrypoints=web"
162 AKHQ_CONFIGURATION: |
167 bootstrap.servers: "kafka:9092"