This repository has been archived by the owner on Apr 19, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 25
/
docker-compose.yml
104 lines (98 loc) · 2.92 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
103
104
---
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 /data/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 computers -l /data/computers.json
kafkacat -b kafka:29092 -P -K: -t employees -l /data/employees.json
while [ 1 -eq 1 ]
do
tar -xzOf /data/pcap.json.tar.gz | awk '{print $$0;system("sleep 0.5");}' | \
kafkacat -b kafka:29092 -P -t pcap
done
volumes:
- $PWD:/data
- up-flag:/data/flags
volumes:
up-flag: {}