96 lines
3.1 KiB
Bash
Executable File
96 lines
3.1 KiB
Bash
Executable File
#!/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 모드"
|
|
echo "[4-1] 토픽 초기화 및 초기 레코드 추가"
|
|
./gradlew clean test --tests "com.sangdol.consumer.test.TestUtils.deleteAllExistTopics"
|
|
./gradlew clean test --tests "com.sangdol.consumer.test.TestUtils.produceRecords"
|
|
|
|
rm docker/.env
|
|
echo "RUN_ENVIRONMENT=docker" > docker/.env
|
|
echo "CONSUMER_PROTOCOL=plaintext" >> docker/.env
|
|
|
|
echo "[4-1] 애플리케이션 실행"
|
|
docker compose -f docker/docker-compose-application.yml up -d
|
|
|
|
echo "[4-1] 2분 대기후 애플리케이션 종료"
|
|
sleep 120
|
|
docker logs client-app > app-plaintext.log
|
|
|
|
docker compose -f docker/docker-compose-application.yml down
|
|
|
|
echo "카프카 브로커 재시작 후 30초 대기.."
|
|
docker compose -f docker/docker-compose-kafka-cluster.yml down
|
|
docker compose -f docker/docker-compose-kafka-cluster.yml up -d
|
|
sleep 30
|
|
|
|
echo " "
|
|
echo "---------------------"
|
|
echo " "
|
|
|
|
echo "[4-2] SSL 모드"
|
|
echo "[4-2] 토픽 초기화 및 초기 레코드 추가"
|
|
./gradlew clean test --tests "com.sangdol.consumer.test.TestUtils.deleteAllExistTopics"
|
|
./gradlew clean test --tests "com.sangdol.consumer.test.TestUtils.produceRecords"
|
|
|
|
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] 2분 대기 후 애플리케이션 종료"
|
|
sleep 120
|
|
docker logs client-app > app-ssl.log
|
|
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 "애플리케이션 로그는 동일 경로의 app-plaintext.log, app-ssl.log 파일에서 확인할 수 있습니다."
|
|
echo "확인이 끝났다면 ./close-all.sh 를 실행하여 초기화 가능합니다." |