feat: 리포트 디자이너 최종 수정
Made-with: Cursor
This commit is contained in:
@@ -5,21 +5,39 @@ START_TIME=$(date +%s)
|
||||
START_TIME_FORMATTED=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
|
||||
echo "============================================"
|
||||
echo "WACE 솔루션 - 전체 서비스 시작 (병렬 최적화)"
|
||||
echo "WACE 솔루션 - 전체 서비스 시작 (OrbStack)"
|
||||
echo "============================================"
|
||||
echo "🕐 시작 시간: $START_TIME_FORMATTED"
|
||||
echo "시작 시간: $START_TIME_FORMATTED"
|
||||
|
||||
# OrbStack 실행 확인
|
||||
if ! docker info &>/dev/null; then
|
||||
echo "Docker 엔진이 실행되지 않았습니다. OrbStack을 시작합니다..."
|
||||
open -a OrbStack
|
||||
echo "OrbStack 시작 대기 중..."
|
||||
for i in $(seq 1 30); do
|
||||
if docker info &>/dev/null; then
|
||||
echo "OrbStack 준비 완료"
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
if ! docker info &>/dev/null; then
|
||||
echo "OrbStack 시작 실패. 수동으로 OrbStack을 실행해주세요."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
COMPOSE_BACKEND="docker compose -f docker/dev/docker-compose.backend.mac.yml"
|
||||
COMPOSE_FRONTEND="docker compose -f docker/dev/docker-compose.frontend.mac.yml"
|
||||
|
||||
echo ""
|
||||
echo "🚀 백엔드와 프론트엔드를 병렬로 빌드 및 시작합니다..."
|
||||
echo ""
|
||||
|
||||
# 기존 컨테이너 강제 삭제 (이름 충돌 방지)
|
||||
echo "============================================"
|
||||
echo "0. 기존 컨테이너 정리 중..."
|
||||
echo "============================================"
|
||||
docker rm -f pms-backend-mac pms-frontend-mac 2>/dev/null || echo "기존 컨테이너가 없습니다."
|
||||
docker network rm pms-network 2>/dev/null || echo "기존 네트워크가 없습니다."
|
||||
docker network create pms-network 2>/dev/null || echo "네트워크를 생성했습니다."
|
||||
$COMPOSE_BACKEND down --remove-orphans 2>/dev/null
|
||||
$COMPOSE_FRONTEND down --remove-orphans 2>/dev/null
|
||||
docker network rm pms-network 2>/dev/null
|
||||
echo "정리 완료"
|
||||
echo ""
|
||||
|
||||
# 병렬 빌드 시작
|
||||
@@ -29,29 +47,37 @@ echo "1. 병렬 빌드 시작 (백엔드 + 프론트엔드)"
|
||||
echo "============================================"
|
||||
|
||||
# 백엔드 빌드 (백그라운드)
|
||||
echo "🔧 백엔드 빌드 시작..."
|
||||
echo "[백엔드] 빌드 시작..."
|
||||
(
|
||||
docker-compose -f docker/dev/docker-compose.backend.mac.yml build
|
||||
echo "✅ 백엔드 빌드 완료"
|
||||
$COMPOSE_BACKEND build 2>&1 | sed 's/^/ [BE] /'
|
||||
echo "[백엔드] 빌드 완료"
|
||||
) &
|
||||
BACKEND_PID=$!
|
||||
|
||||
# 프론트엔드 빌드 (백그라운드)
|
||||
echo "🔧 프론트엔드 빌드 시작..."
|
||||
# 프론트엔드 빌드 (백그라운드)
|
||||
echo "[프론트엔드] 빌드 시작..."
|
||||
(
|
||||
docker-compose -f docker/dev/docker-compose.frontend.mac.yml build
|
||||
echo "✅ 프론트엔드 빌드 완료"
|
||||
$COMPOSE_FRONTEND build 2>&1 | sed 's/^/ [FE] /'
|
||||
echo "[프론트엔드] 빌드 완료"
|
||||
) &
|
||||
FRONTEND_PID=$!
|
||||
|
||||
# 두 빌드가 모두 완료될 때까지 대기
|
||||
echo "⏳ 병렬 빌드 진행 중..."
|
||||
echo "병렬 빌드 진행 중..."
|
||||
wait $BACKEND_PID
|
||||
BACKEND_EXIT=$?
|
||||
wait $FRONTEND_PID
|
||||
FRONTEND_EXIT=$?
|
||||
|
||||
if [ $BACKEND_EXIT -ne 0 ] || [ $FRONTEND_EXIT -ne 0 ]; then
|
||||
echo "빌드 실패! 로그를 확인해주세요."
|
||||
[ $BACKEND_EXIT -ne 0 ] && echo " - 백엔드 빌드 실패 (exit: $BACKEND_EXIT)"
|
||||
[ $FRONTEND_EXIT -ne 0 ] && echo " - 프론트엔드 빌드 실패 (exit: $FRONTEND_EXIT)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PARALLEL_END=$(date +%s)
|
||||
PARALLEL_DURATION=$((PARALLEL_END - PARALLEL_START))
|
||||
echo "✅ 병렬 빌드 완료 (${PARALLEL_DURATION}초 소요)"
|
||||
echo "병렬 빌드 완료 (${PARALLEL_DURATION}초 소요)"
|
||||
|
||||
# 서비스 시작
|
||||
echo ""
|
||||
@@ -61,53 +87,50 @@ echo "============================================"
|
||||
|
||||
SERVICE_START=$(date +%s)
|
||||
|
||||
# 기존 컨테이너 정리
|
||||
docker-compose -f docker/dev/docker-compose.backend.mac.yml down -v 2>/dev/null
|
||||
docker-compose -f docker/dev/docker-compose.frontend.mac.yml down -v 2>/dev/null
|
||||
# 백엔드 시작
|
||||
echo "[백엔드] 서비스 시작..."
|
||||
$COMPOSE_BACKEND up -d
|
||||
|
||||
# 백엔드 시작 (백그라운드)
|
||||
echo "🚀 백엔드 서비스 시작..."
|
||||
docker-compose -f docker/dev/docker-compose.backend.mac.yml up -d &
|
||||
BACKEND_START_PID=$!
|
||||
|
||||
# 프론트엔드 시작 (백그라운드)
|
||||
echo "🚀 프론트엔드 서비스 시작..."
|
||||
docker-compose -f docker/dev/docker-compose.frontend.mac.yml up -d &
|
||||
FRONTEND_START_PID=$!
|
||||
|
||||
# 서비스 시작 완료 대기
|
||||
wait $BACKEND_START_PID
|
||||
wait $FRONTEND_START_PID
|
||||
# 프론트엔드 시작
|
||||
echo "[프론트엔드] 서비스 시작..."
|
||||
$COMPOSE_FRONTEND up -d
|
||||
|
||||
echo ""
|
||||
echo "⏳ 서비스 안정화 대기 중... (8초)"
|
||||
echo "서비스 안정화 대기 중... (8초)"
|
||||
sleep 8
|
||||
|
||||
SERVICE_END=$(date +%s)
|
||||
SERVICE_DURATION=$((SERVICE_END - SERVICE_START))
|
||||
echo "✅ 서비스 시작 완료 (${SERVICE_DURATION}초 소요)"
|
||||
echo "서비스 시작 완료 (${SERVICE_DURATION}초 소요)"
|
||||
|
||||
# 컨테이너 상태 확인
|
||||
echo ""
|
||||
echo "============================================"
|
||||
echo "3. 컨테이너 상태 확인"
|
||||
echo "============================================"
|
||||
docker ps --filter "name=pms-" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
|
||||
|
||||
echo ""
|
||||
echo "============================================"
|
||||
echo "🎉 모든 서비스가 시작되었습니다!"
|
||||
echo "모든 서비스가 시작되었습니다!"
|
||||
echo "============================================"
|
||||
echo ""
|
||||
echo "[DATABASE] PostgreSQL: http://39.117.244.52:11132"
|
||||
echo "[DATABASE] PostgreSQL: 39.117.244.52:11132"
|
||||
echo "[BACKEND] Node.js API: http://localhost:8080/api"
|
||||
echo "[FRONTEND] Next.js: http://localhost:9771"
|
||||
echo ""
|
||||
echo "서비스 상태 확인:"
|
||||
echo " 백엔드: docker-compose -f docker/dev/docker-compose.backend.mac.yml ps"
|
||||
echo " 프론트엔드: docker-compose -f docker/dev/docker-compose.frontend.mac.yml ps"
|
||||
echo " 백엔드: $COMPOSE_BACKEND ps"
|
||||
echo " 프론트엔드: $COMPOSE_FRONTEND ps"
|
||||
echo ""
|
||||
echo "로그 확인:"
|
||||
echo " 백엔드: docker-compose -f docker/dev/docker-compose.backend.mac.yml logs -f"
|
||||
echo " 프론트엔드: docker-compose -f docker/dev/docker-compose.frontend.mac.yml logs -f"
|
||||
echo " 백엔드: $COMPOSE_BACKEND logs -f"
|
||||
echo " 프론트엔드: $COMPOSE_FRONTEND logs -f"
|
||||
echo ""
|
||||
echo "서비스 중지:"
|
||||
echo " 백엔드: docker-compose -f docker/dev/docker-compose.backend.mac.yml down"
|
||||
echo " 프론트엔드: docker-compose -f docker/dev/docker-compose.frontend.mac.yml down"
|
||||
echo " 전체: ./stop-all.sh"
|
||||
echo " 백엔드: $COMPOSE_BACKEND down"
|
||||
echo " 프론트엔드: $COMPOSE_FRONTEND down"
|
||||
echo " 전체: ./stop-all.sh"
|
||||
echo ""
|
||||
echo "============================================"
|
||||
|
||||
@@ -118,12 +141,14 @@ DURATION=$((END_TIME - START_TIME))
|
||||
MINUTES=$((DURATION / 60))
|
||||
SECONDS=$((DURATION % 60))
|
||||
|
||||
echo "🕐 종료 시간: $END_TIME_FORMATTED"
|
||||
echo "⏱️ 총 소요 시간: ${MINUTES}분 ${SECONDS}초"
|
||||
echo "종료 시간: $END_TIME_FORMATTED"
|
||||
echo "총 소요 시간: ${MINUTES}분 ${SECONDS}초"
|
||||
echo ""
|
||||
echo "📊 단계별 소요 시간:"
|
||||
echo " • 병렬 빌드: ${PARALLEL_DURATION}초"
|
||||
echo " • 서비스 시작: ${SERVICE_DURATION}초"
|
||||
echo "단계별 소요 시간:"
|
||||
echo " 빌드: ${PARALLEL_DURATION}초"
|
||||
echo " 시작: ${SERVICE_DURATION}초"
|
||||
echo "============================================"
|
||||
|
||||
read -p "계속하려면 아무 키나 누르세요..."
|
||||
if [ -t 0 ]; then
|
||||
read -p "계속하려면 아무 키나 누르세요..."
|
||||
fi
|
||||
|
||||
18
scripts/dev/stop-all.sh
Executable file
18
scripts/dev/stop-all.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "============================================"
|
||||
echo "WACE 솔루션 - 전체 서비스 중지 (OrbStack)"
|
||||
echo "============================================"
|
||||
|
||||
COMPOSE_BACKEND="docker compose -f docker/dev/docker-compose.backend.mac.yml"
|
||||
COMPOSE_FRONTEND="docker compose -f docker/dev/docker-compose.frontend.mac.yml"
|
||||
|
||||
echo "[백엔드] 서비스 중지..."
|
||||
$COMPOSE_BACKEND down --remove-orphans 2>/dev/null
|
||||
|
||||
echo "[프론트엔드] 서비스 중지..."
|
||||
$COMPOSE_FRONTEND down --remove-orphans 2>/dev/null
|
||||
|
||||
echo ""
|
||||
echo "모든 서비스가 중지되었습니다."
|
||||
echo "============================================"
|
||||
Reference in New Issue
Block a user