#!/bin/bash # REST API 서버 시작 스크립트 (Linux) echo "========================================" echo "🚀 REST API 서버 시작" echo "========================================" echo # Docker 설치 및 실행 확인 if ! command -v docker &> /dev/null; then echo "❌ Docker가 설치되지 않았습니다." echo " 설치 가이드: https://docs.docker.com/engine/install/" exit 1 fi if ! docker info &> /dev/null; then echo "❌ Docker가 실행되지 않았습니다." echo " Docker 서비스를 시작합니다..." if command -v systemctl &> /dev/null; then sudo systemctl start docker elif command -v service &> /dev/null; then sudo service docker start fi sleep 3 if ! docker info &> /dev/null; then echo "❌ Docker 서비스 시작 실패. 수동으로 시작해주세요." exit 1 fi fi echo "✅ Docker가 정상적으로 실행 중입니다." echo # 기존 컨테이너 정리 echo "🧹 기존 컨테이너 정리 중..." docker stop restapi-server 2>/dev/null || true docker rm restapi-server 2>/dev/null || true # 이미지 빌드 (캐시 무시하여 최신 코드 반영) echo "🏗️ Docker 이미지 빌드 중... (최신 코드 반영)" echo " ℹ️ 캐시를 무시하고 처음부터 빌드합니다." if ! docker build --no-cache -t restapi-server:latest .; then echo "❌ 이미지 빌드 실패!" exit 1 fi # 서버 시작 echo "🚀 서버 시작 중..." if docker run -d \ --name restapi-server \ --restart unless-stopped \ -p 5577:5577 \ -e NODE_ENV=production \ -e DB_HOST=39.117.244.52 \ -e DB_PORT=11521 \ -e DB_DATABASE=XE \ -e DB_USERNAME=wace \ -e DB_PASSWORD=wace0909!! \ -e PORT=5577 \ restapi-server:latest; then echo echo "========================================" echo "🎉 서버가 성공적으로 시작되었습니다!" echo "========================================" echo echo "📱 웹 UI: http://localhost:5577" echo "🔐 관리자: admin / admin123!" echo echo "ℹ️ Oracle DB 연결 실패 시 자동으로 Mock DB를 사용합니다." echo # 서버 시작 대기 echo "🕐 서버 시작 대기 중... (15초)" sleep 15 # 상태 확인 echo "🔍 서버 상태 확인 중..." if curl -s http://localhost:5577/api/health > /dev/null 2>&1; then echo "✅ 서버가 정상적으로 실행 중입니다!" echo "🌐 브라우저에서 http://localhost:5577 을 열어보세요!" else echo "⚠️ 서버가 아직 시작 중일 수 있습니다." echo " 잠시 후 http://localhost:5577 을 확인해보세요." fi echo echo "📊 유용한 명령어:" echo " 로그 확인: docker logs -f restapi-server" echo " 서버 중지: ./stop-server.sh" echo " 컨테이너 상태: docker ps" echo else echo "❌ 서버 시작 실패!" exit 1 fi