3 IMAGE=juplo/endless-consumer:1.0-SNAPSHOT
5 if [ "$1" = "cleanup" ]
12 docker-compose stop producer consumer
13 docker-compose up -d zookeeper kafka cli
16 $(docker image ls -q $IMAGE) == "" ||
20 docker-compose rm -svf consumer
21 mvn clean install || exit
23 echo "Using image existing images:"
24 docker image ls $IMAGE
27 echo "Waiting for the Kafka-Cluster to become ready..."
28 docker-compose exec cli cub kafka-ready -b kafka:9092 1 60 > /dev/null 2>&1 || exit 1
30 docker-compose exec -T cli bash << 'EOF'
31 echo "Creating topic with 3 partitions..."
32 kafka-topics --bootstrap-server kafka:9092 --delete --if-exists --topic test
34 kafka-topics --bootstrap-server kafka:9092 --create --topic test --partitions 3
36 kafka-topics --bootstrap-server kafka:9092 --describe --topic test
39 docker-compose up -d producer consumer
40 while ! [[ $(http 0:8080/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer..."; sleep 1; done
41 while ! [[ $(http 0:8081/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for consumer..."; sleep 1; done
42 while [[ "$(http :8081/state | jq -r .)" == "{}" ]]; do echo "Waiting for some state to show up..."; done
46 docker-compose stop producer
47 docker-compose exec -T cli bash << 'EOF'
48 echo "Altering number of partitions from 3 to 7..."
50 kafka-topics --bootstrap-server kafka:9092 --alter --topic test --partitions 7
51 kafka-topics --bootstrap-server kafka:9092 --describe --topic test
55 docker-compose start producer
56 while ! [[ $(http 0:8080/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer..."; sleep 1; done
85 docker-compose stop producer