#!/bin/bash echo "0. 실행 중인 모든 컨테이너 종료" find docker/ -name 'docker-compose*.yml' -exec docker compose -f {} down --remove-orphans \; echo "0. SSL 인증서 생성" ./keygen.sh echo " " echo "======================" echo " " echo "1. 그라파나 볼륨 생성" GRAFANA_VOLUME="grafana-storage" if [ -z "$(docker volume ls --filter name=${GRAFANA_VOLUME} --format '{{ .Name }}')" ]; then echo "그라파나에서 사용할 ${GRAFANA_VOLUME} 볼륨을 생성합니다." docker volume create ${GRAFANA_VOLUME} fi echo " " echo "======================" echo " " echo "2. 카프카 & 모니터링 툴 실행" docker compose -f docker/docker-compose-kafka-cluster.yml up -d docker compose -f docker/docker-compose-monitoring.yml up -d echo " " echo "======================" echo " " echo "3. 애플리케이션 이미지 빌드" ./gradlew bootjar docker buildx build -t client-application:latest -f docker/application/Dockerfile_Application . echo " " echo "======================" echo " " echo "4. 애플리케이션 실행 및 테스트" echo "[4-1] PLAINTEXT 모드" rm docker/.env echo "RUN_ENVIRONMENT=docker" > docker/.env echo "CONSUMER_PROTOCOL=plaintext" >> docker/.env docker compose -f docker/docker-compose-application.yml up -d echo "[4-1] 실행 후 30초 대기..." sleep 30 echo "[4-1] 테스트 시작" ./gradlew clean test --tests "com.sangdol.consumer.test.TestUtils.produceRecords" echo "[4-1] 테스트 완료. SSL 모드 실행 전 2분 대기.." sleep 120 echo "[4-1] 토픽 초기화.." ./gradlew clean test --tests "com.sangdol.consumer.test.TestUtils.deleteAllExistTopics" echo " " echo "---------------------" echo " " echo "[4-2] SSL 모드" rm docker/.env echo "RUN_ENVIRONMENT=docker" > docker/.env echo "CONSUMER_PROTOCOL=ssl" >> docker/.env echo "[4-2] 애플리케이션 재시작" docker compose -f docker/docker-compose-application.yml down docker compose -f docker/docker-compose-application.yml up -d echo "[4-2] 실행 후 30초 대기..." sleep 30 echo "[4-2] 테스트 시작" ./gradlew clean test --tests "com.sangdol.consumer.test.TestUtils.produceRecords" echo "[4-2] 이전과 동일하게 2분 대기 후 애플리케이션 종료.." sleep 120 docker compose -f docker/docker-compose-application.yml down echo " " echo "======================" echo " " echo "테스트 완료. 대시보드 확인하기 👇" echo "ID: admin / PW: admin" echo "Consumer: http://localhost:3000/d/-C-IEldWk2/redpanda-kafka-java-consumer" echo "Springboot: http://localhost:3000/d/spring_boot_21/spring-boot-2-1-system-monitor" echo "Kafka UI: http://localhost:8000" echo "확인이 끝났다면 ./close-all.sh 를 실행하여 초기화 가능합니다."