김주석 의원장님 살려주세요
This commit is contained in:
168
scripts/dev/start-all-parallel-linux.sh
Executable file
168
scripts/dev/start-all-parallel-linux.sh
Executable file
@@ -0,0 +1,168 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 스크립트 위치에서 프로젝트 루트로 이동
|
||||
cd "$(dirname "$0")/../.." || exit 1
|
||||
|
||||
# 시작 시간 기록
|
||||
START_TIME=$(date +%s)
|
||||
START_TIME_FORMATTED=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
|
||||
echo ""
|
||||
echo "============================================"
|
||||
echo "WACE 솔루션 - 전체 서비스 시작 (병렬 최적화) - Linux"
|
||||
echo "============================================"
|
||||
echo "[시작 시간] $START_TIME_FORMATTED"
|
||||
echo ""
|
||||
|
||||
# Docker 확인
|
||||
echo "[1/5] Docker 상태 확인 중..."
|
||||
if ! docker --version >/dev/null 2>&1; then
|
||||
echo "[ERROR] Docker가 설치되지 않았거나 실행 중이 아닙니다!"
|
||||
exit 1
|
||||
fi
|
||||
echo "[OK] Docker 환경 확인 완료"
|
||||
echo ""
|
||||
|
||||
# docker compose vs docker-compose 자동 감지
|
||||
if docker compose version >/dev/null 2>&1; then
|
||||
DC="docker compose"
|
||||
else
|
||||
DC="docker-compose"
|
||||
fi
|
||||
|
||||
BACKEND_COMPOSE="docker/dev/docker-compose.backend.linux.yml"
|
||||
FRONTEND_COMPOSE="docker/dev/docker-compose.frontend.linux.yml"
|
||||
|
||||
# 기존 컨테이너 정리
|
||||
echo "[2/5] 기존 컨테이너 정리 중..."
|
||||
docker rm -f pms-backend-linux pms-frontend-linux 2>/dev/null || true
|
||||
docker network rm pms-network 2>/dev/null || true
|
||||
docker network create pms-network 2>/dev/null || true
|
||||
echo "[OK] 컨테이너 정리 완료"
|
||||
echo ""
|
||||
|
||||
# 병렬 빌드 시작
|
||||
PARALLEL_START=$(date +%s)
|
||||
echo "[3/5] 이미지 빌드 중... (백엔드 + 프론트엔드 병렬)"
|
||||
echo ""
|
||||
|
||||
# 백엔드 빌드 (백그라운드)
|
||||
(
|
||||
$DC -f "$BACKEND_COMPOSE" build 2>&1
|
||||
) > /tmp/pms-backend-build.log 2>&1 &
|
||||
BACKEND_BUILD_PID=$!
|
||||
|
||||
# 프론트엔드 빌드 (백그라운드)
|
||||
(
|
||||
$DC -f "$FRONTEND_COMPOSE" build 2>&1
|
||||
) > /tmp/pms-frontend-build.log 2>&1 &
|
||||
FRONTEND_BUILD_PID=$!
|
||||
|
||||
echo " 백엔드 빌드 진행 중... (PID: $BACKEND_BUILD_PID)"
|
||||
echo " 프론트엔드 빌드 진행 중... (PID: $FRONTEND_BUILD_PID)"
|
||||
echo ""
|
||||
|
||||
# 빌드 완료 대기
|
||||
wait $BACKEND_BUILD_PID
|
||||
BACKEND_BUILD_RESULT=$?
|
||||
wait $FRONTEND_BUILD_PID
|
||||
FRONTEND_BUILD_RESULT=$?
|
||||
|
||||
# 빌드 결과 확인
|
||||
BUILD_FAILED=false
|
||||
if [ $BACKEND_BUILD_RESULT -eq 0 ]; then
|
||||
echo "[OK] 백엔드 빌드 완료"
|
||||
else
|
||||
echo "[ERROR] 백엔드 빌드 실패!"
|
||||
cat /tmp/pms-backend-build.log
|
||||
BUILD_FAILED=true
|
||||
fi
|
||||
|
||||
if [ $FRONTEND_BUILD_RESULT -eq 0 ]; then
|
||||
echo "[OK] 프론트엔드 빌드 완료"
|
||||
else
|
||||
echo "[ERROR] 프론트엔드 빌드 실패!"
|
||||
cat /tmp/pms-frontend-build.log
|
||||
BUILD_FAILED=true
|
||||
fi
|
||||
|
||||
if [ "$BUILD_FAILED" = true ]; then
|
||||
echo "빌드 실패로 중단합니다."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PARALLEL_END=$(date +%s)
|
||||
PARALLEL_DURATION=$((PARALLEL_END - PARALLEL_START))
|
||||
echo "[INFO] 빌드 소요 시간: ${PARALLEL_DURATION}초"
|
||||
echo ""
|
||||
|
||||
# 서비스 시작
|
||||
SERVICE_START=$(date +%s)
|
||||
echo "[4/5] 서비스 시작 중..."
|
||||
|
||||
# 기존 서비스 정리
|
||||
$DC -f "$BACKEND_COMPOSE" down -v 2>/dev/null || true
|
||||
$DC -f "$FRONTEND_COMPOSE" down -v 2>/dev/null || true
|
||||
|
||||
# 백엔드 시작
|
||||
echo " 백엔드 서비스 시작..."
|
||||
$DC -f "$BACKEND_COMPOSE" up -d
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "[ERROR] 백엔드 시작 실패!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 프론트엔드 시작
|
||||
echo " 프론트엔드 서비스 시작..."
|
||||
$DC -f "$FRONTEND_COMPOSE" up -d
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "[ERROR] 프론트엔드 시작 실패!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "[OK] 서비스 시작 완료"
|
||||
|
||||
SERVICE_END=$(date +%s)
|
||||
SERVICE_DURATION=$((SERVICE_END - SERVICE_START))
|
||||
echo "[INFO] 서비스 시작 소요 시간: ${SERVICE_DURATION}초"
|
||||
echo ""
|
||||
|
||||
# 안정화 대기
|
||||
echo "[5/5] 서비스 안정화 대기 중... (10초)"
|
||||
sleep 10
|
||||
echo ""
|
||||
|
||||
echo "============================================"
|
||||
echo "[완료] 모든 서비스가 시작되었습니다!"
|
||||
echo "============================================"
|
||||
echo ""
|
||||
echo "[DATABASE] PostgreSQL: http://211.115.91.141:11134"
|
||||
echo "[BACKEND] Node.js API: http://localhost:8080/api"
|
||||
echo "[FRONTEND] Next.js: http://localhost:9771"
|
||||
echo ""
|
||||
echo "[서비스 상태 확인]"
|
||||
echo " $DC -f $BACKEND_COMPOSE ps"
|
||||
echo " $DC -f $FRONTEND_COMPOSE ps"
|
||||
echo ""
|
||||
echo "[로그 확인]"
|
||||
echo " 백엔드: $DC -f $BACKEND_COMPOSE logs -f"
|
||||
echo " 프론트엔드: $DC -f $FRONTEND_COMPOSE logs -f"
|
||||
echo ""
|
||||
echo "[서비스 중지]"
|
||||
echo " $DC -f $BACKEND_COMPOSE down"
|
||||
echo " $DC -f $FRONTEND_COMPOSE down"
|
||||
echo ""
|
||||
|
||||
# 종료 시간 계산
|
||||
END_TIME=$(date +%s)
|
||||
END_TIME_FORMATTED=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
DURATION=$((END_TIME - START_TIME))
|
||||
MINUTES=$((DURATION / 60))
|
||||
SECONDS=$((DURATION % 60))
|
||||
|
||||
echo "============================================"
|
||||
echo "[종료 시간] $END_TIME_FORMATTED"
|
||||
echo "[총 소요 시간] ${MINUTES}분 ${SECONDS}초"
|
||||
echo " - 빌드: ${PARALLEL_DURATION}초"
|
||||
echo " - 서비스 시작: ${SERVICE_DURATION}초"
|
||||
echo "============================================"
|
||||
Reference in New Issue
Block a user