forked from confluentinc/ksql-recipes-try-it-at-home
-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
102 lines (96 loc) · 2.86 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
---
version: '2'
services:
zookeeper:
image: "confluentinc/cp-zookeeper:5.1.0"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
kafka:
image: "confluentinc/cp-enterprise-kafka:5.1.0"
ports:
- '9092:9092'
depends_on:
- zookeeper
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 100
command:
- bash
- -c
- |
rm /data/kafka-is-up
# Launch Kafka
/etc/confluent/docker/run &
# Wait for Kafka to start and then create a file to
# indicate that it's listening
echo "Waiting for Kafka to start listening on 9092 ⏳"
nc -vz localhost 9092
is_up=$$?
while [ $$is_up -ne 0 ] ; do
echo -e $$(date) $$(nc -z localhost 9092)
nc -vz localhost 9092
is_up=$$?
sleep 5
done
echo "Kakfa is now listening! :-)"
touch /data/kafka-is-up
sleep infinity
volumes:
- up-flag:/data
# schema-registry:
# image: "confluentinc/cp-schema-registry:5.1.0"
# depends_on:
# - kafka
# ports:
# - '8081:8081'
# environment:
# SCHEMA_REGISTRY_HOST_NAME: schema-registry
# SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL: zookeeper:2181
ksql-server:
image: confluentinc/cp-ksql-server:5.1.0
depends_on:
- kafka
# - schema-registry
environment:
KSQL_BOOTSTRAP_SERVERS: kafka:29092
KSQL_LISTENERS: http://0.0.0.0:8088
# KSQL_KSQL_SCHEMA_REGISTRY_URL: http://schema-registry:8081
# KSQL_KSQL_SERVICE_ID: confluent_rmoff_01
ksql-cli:
image: confluentinc/cp-ksql-cli:5.1.0
depends_on:
- ksql-server
entrypoint: /bin/sh
tty: true
kafkacat:
image: confluentinc/cp-kafkacat:latest
depends_on:
- kafka
command:
- bash
- -c
- |
echo "Waiting for flag that Kafka is up… ⏳"
until [ -f /flags/kafka-is-up ]
do
echo -e $$(date) ": Waiting for flag that Kafka is up… ⏳"
sleep 5
done
echo -e $$(date) ": \o/ Got the flag that Kafka is up!"
kafkacat -b kafka:29092 -P -K: -t customers -l /data/customers.json
while [ 1 -eq 1 ]
do awk '{print $$0;val=rand() *30;system("sleep "val);}' /data/customers_incremental.json | \
kafkacat -b kafka:29092 -P -K: -t customers
done
volumes:
- $PWD:/data
- up-flag:/flags
volumes:
up-flag: {}