From 09d274216ec0a0e46ba0ef7e53cb2aaa6e0e2b82 Mon Sep 17 00:00:00 2001 From: pricelees Date: Fri, 27 Jun 2025 13:27:02 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=8B=A4?= =?UTF-8?q?=ED=96=89=20=EC=9E=90=EB=8F=99=ED=99=94=20=EC=8A=A4=ED=81=AC?= =?UTF-8?q?=EB=A6=BD=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- run.sh | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100755 run.sh diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..d2d2d9d --- /dev/null +++ b/run.sh @@ -0,0 +1,89 @@ +#!/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 "org.study.consumerssl.data.TestUtils.produceRecords" +echo "[4-1] 테스트 완료. SSL 모드 실행 전 2분 대기.." +sleep 120 + +echo "[4-1] 토픽 초기화.." +./gradlew clean test --tests "org.study.consumerssl.data.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 "org.study.consumerssl.data.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 를 실행하여 초기화 가능합니다." \ No newline at end of file