#!/bin/bash echo "============================================" echo "WACE 솔루션 - 전체 서비스 시작 (분리형) - Linux" echo "============================================" echo "" echo "🚀 백엔드와 프론트엔드를 순차적으로 시작합니다..." echo "" # 시스템 정보 출력 echo "시스템 정보:" echo " OS: $(uname -s)" echo " Architecture: $(uname -m)" echo " Kernel: $(uname -r)" echo "" # Docker 및 Docker Compose 버전 확인 echo "Docker 환경 확인:" docker --version 2>/dev/null || echo " ❌ Docker가 설치되지 않았습니다." docker-compose --version 2>/dev/null || echo " ❌ Docker Compose가 설치되지 않았습니다." echo "" # 기존 컨테이너 정리 echo "============================================" echo "0. 기존 서비스 정리 중..." echo "============================================" # 기존 컨테이너 중지 및 제거 (무시하고 계속) docker-compose -f docker/prod/docker-compose.backend.prod.yml down -v 2>/dev/null || true docker-compose -f docker/prod/docker-compose.frontend.prod.yml down -v 2>/dev/null || true # 사용하지 않는 이미지 정리 echo "사용하지 않는 Docker 이미지 정리 중..." docker image prune -f 2>/dev/null || true # 백엔드 먼저 시작 echo "" echo "============================================" echo "1. 백엔드 서비스 시작 중..." echo "============================================" # 네트워크 생성 (존재하지 않는 경우) docker network create pms-network 2>/dev/null || echo "네트워크가 이미 존재합니다." # 백엔드 빌드 및 시작 echo "백엔드 이미지 빌드 중..." docker-compose -f docker/prod/docker-compose.backend.prod.yml build --no-cache echo "백엔드 서비스 시작 중..." docker-compose -f docker/prod/docker-compose.backend.prod.yml up -d echo "" echo "⏳ 백엔드 서비스 안정화 대기 중... (30초)" sleep 30 # 백엔드 상태 확인 echo "백엔드 서비스 상태 확인:" docker-compose -f docker/prod/docker-compose.backend.prod.yml ps # 프론트엔드 시작 echo "" echo "============================================" echo "2. 프론트엔드 서비스 시작 중..." echo "============================================" echo "프론트엔드 이미지 빌드 중..." docker-compose -f docker/prod/docker-compose.frontend.prod.yml build --no-cache echo "프론트엔드 서비스 시작 중..." docker-compose -f docker/prod/docker-compose.frontend.prod.yml up -d echo "" echo "⏳ 프론트엔드 서비스 안정화 대기 중... (15초)" sleep 15 # 프론트엔드 상태 확인 echo "프론트엔드 서비스 상태 확인:" docker-compose -f docker/prod/docker-compose.frontend.prod.yml ps echo "" echo "============================================" echo "🎉 모든 서비스가 시작되었습니다!" echo "============================================" echo "" echo "📊 서비스 접속 정보:" echo " [DATABASE] PostgreSQL: http://39.117.244.52:11132" echo " [BACKEND] Spring Boot: http://localhost:8080/api" echo " [FRONTEND] Next.js: http://localhost:5555" echo "" echo "🔧 관리 명령어:" echo " 서비스 상태 확인:" echo " 백엔드: docker-compose -f docker/prod/docker-compose.backend.prod.yml ps" echo " 프론트엔드: docker-compose -f docker/prod/docker-compose.frontend.prod.yml ps" echo " 전체: docker ps" echo "" echo " 로그 확인:" echo " 백엔드: docker-compose -f docker/prod/docker-compose.backend.prod.yml logs -f" echo " 프론트엔드: docker-compose -f docker/prod/docker-compose.frontend.prod.yml logs -f" echo " 실시간: docker-compose -f docker/prod/docker-compose.backend.prod.yml -f docker-compose.frontend.linux.yml logs -f" echo "" echo " 서비스 중지:" echo " 백엔드: docker-compose -f docker/prod/docker-compose.backend.prod.yml down" echo " 프론트엔드: docker-compose -f docker/prod/docker-compose.frontend.prod.yml down" echo " 전체: ./stop-all-linux.sh" echo "" echo " 시스템 모니터링:" echo " Docker 상태: docker system df" echo " 리소스 사용: docker stats" echo "" echo "============================================" # 서비스 헬스체크 echo "" echo "🏥 서비스 헬스체크 수행 중..." echo "" # 백엔드 헬스체크 (최대 60초 대기) echo "백엔드 헬스체크..." for i in {1..12}; do if curl -s http://localhost:8080/actuator/health >/dev/null 2>&1; then echo " ✅ 백엔드 서비스 정상" break else echo " ⏳ 백엔드 응답 대기 중... ($i/12)" sleep 5 fi done # 프론트엔드 헬스체크 (최대 30초 대기) echo "프론트엔드 헬스체크..." for i in {1..6}; do if curl -s http://localhost:5555 >/dev/null 2>&1; then echo " ✅ 프론트엔드 서비스 정상" break else echo " ⏳ 프론트엔드 응답 대기 중... ($i/6)" sleep 5 fi done echo "" echo "🎯 시작 완료! 브라우저에서 http://localhost:5555 을 확인하세요." echo "" read -p "계속하려면 Enter 키를 누르세요..."