#!/bin/bash # ============================================================ # 시놀로지 NAS 안전 업데이트 스크립트 # Technical Korea Work Management System v2.2.0 # ============================================================ # # ⚠️ 주의: 이 스크립트는 DB 데이터를 보존하면서 코드만 업데이트합니다. # # 사용법: # cd /volume2/docker/synology_deployment # chmod +x update.sh # sudo ./update.sh # # ============================================================ set -e echo "" echo "============================================================" echo "🚀 Technical Korea Work Management System 업데이트" echo " 버전: v2.2.0" echo "============================================================" echo "" # 현재 디렉토리 확인 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" echo "📁 작업 디렉토리: $SCRIPT_DIR" echo "" # 1. 현재 실행 중인 컨테이너 확인 echo "🔍 현재 컨테이너 상태 확인..." docker-compose ps echo "" echo "⏸️ API 컨테이너만 재시작합니다. (DB 데이터 보존)" echo "" # 2. API 컨테이너만 재빌드 및 재시작 (DB는 그대로 유지) echo "🔄 API 컨테이너 재빌드 중..." docker-compose build api echo "" echo "🔄 API 컨테이너 재시작 중..." docker-compose up -d api echo "" echo "⏳ 서버 시작 대기 중... (10초)" sleep 10 # 3. 로그 확인 echo "" echo "📋 API 서버 로그 (최근 30줄):" echo "------------------------------------------------------------" docker-compose logs --tail=30 api # 4. 헬스체크 echo "" echo "🏥 헬스체크 중..." if curl -s http://localhost:20005/api/health > /dev/null 2>&1; then echo "✅ API 서버 정상 작동 중!" else echo "⚠️ API 서버 응답 없음. 로그를 확인하세요:" echo " docker-compose logs api" fi echo "" echo "============================================================" echo "✅ 업데이트 완료!" echo "" echo "📌 확인사항:" echo " - 브라우저에서 Ctrl+Shift+R (하드 리프레시)" echo " - http://192.168.0.3:20000 접속 테스트" echo "" echo "📌 문제 발생 시:" echo " - 로그 확인: docker-compose logs api" echo " - 재시작: docker-compose restart api" echo "============================================================" echo ""