Simple processing pipeline
[demos/kafka/wordcount] / README.sh
1 #!/bin/bash
2
3 RECORDER=juplo/wordcount--recorder:1.0.0
4 COUNTER=juplo/wordcount--counter:1.0.0
5 TOP10=juplo/wordcount--top10:1.0.0
6 QUERY=juplo/wordcount--query:1.0.0
7
8 if [ "$1" = "cleanup" ]
9 then
10   docker-compose down -v
11   docker image rm $RECORDER
12   docker image rm $COUNTER
13   docker image rm $TOP10
14   docker image rm $QUERY
15   exit
16 fi
17
18 if [[
19   $(docker image ls -q $RECORDER) == "" ||
20   $(docker image ls -q $COUNTER) == "" ||
21   $(docker image ls -q $TOP10) == "" ||
22   $(docker image ls -q $QUERY) == "" ||
23   "$1" = "build"
24 ]]
25 then
26   git submodule update --init
27   mvn clean package || exit
28   docker-compose rm -svf recorder counter top10 query
29   mvn -f recorder/pom.xml docker:build
30   mvn -f counter/pom.xml docker:build
31   mvn -f top10/pom.xml docker:build
32   mvn -f query/pom.xml docker:build
33 else
34   echo "Using existing images:"
35   docker image ls $RECORDER
36   docker image ls $COUNTER
37   docker image ls $TOP10
38   docker image ls $QUERY
39 fi
40
41
42 docker-compose up -d zookeeper kafka cli kafkacat
43
44 echo "Waiting for the Kafka-Cluster to become ready..."
45 docker-compose exec cli cub kafka-ready -b kafka:9092 1 60 > /dev/null 2>&1 || exit 1
46 docker-compose exec cli zookeeper-shell zookeeper:2181 ls /brokers/ids
47
48 echo "Starting all instances..."
49 docker-compose up -d