Compose-Setup und Vorführ-Skript an die Übung angepasst
[demos/kafka/training] / README.sh
1 #!/bin/bash
2
3 IMAGE=juplo/sumup-adder:1.0-SNAPSHOT
4
5 if [ "$1" = "cleanup" ]
6 then
7   docker-compose down -v
8   mvn clean
9   exit
10 fi
11
12 docker-compose stop adder
13 docker-compose rm -svf mongo
14 docker-compose up -d zookeeper kafka-1 kafka-2 kafka-3 cli mongo express
15
16 if [[
17   $(docker image ls -q $IMAGE) == "" ||
18   "$1" = "build"
19 ]]
20 then
21   docker-compose rm -svf adder
22   mvn -D skipTests clean install || exit
23 else
24   echo "Using image existing images:"
25   docker image ls $IMAGE
26 fi
27
28 echo "Waiting for the Kafka-Cluster to become ready..."
29 docker-compose exec cli cub kafka-ready -b kafka:9092 1 60 > /dev/null 2>&1 || exit 1
30 docker-compose up setup
31 docker-compose up -d gateway requests adder
32
33 while ! [[ $(http 0:8080/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for gateway..."; sleep 1; done
34 while ! [[ $(http 0:8081/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for requests..."; sleep 1; done
35 while ! [[ $(http 0:8082/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for adder..."; sleep 1; done
36
37 docker-compose up -d peter
38
39 while [[ "$(http :8082/results | jq -r .)" == "{}" ]]; do echo "Waiting for some results to show up..."; done
40 http -v :8082/results
41 sleep 3
42 http -v :8082/results
43 http :8082/results/peter | jq .[].sum | uniq
44 docker-compose kill -s 9 adder
45
46 docker-compose up -d adder
47 docker-compose kill -s 9 peter
48 while ! [[ $(http 0:8082/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for adder..."; sleep 1; done
49 while [[ "$(http :8082/results | jq -r .)" == "{}" ]]; do echo "Waiting for some results to show up..."; sleep 1; done
50 http :8082/results/peter | jq .[].sum | uniq