chore: deploy.sh 추적 중지 및 .gitignore 추가
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -123,3 +123,6 @@ src/app/**/dev/dashboard/
|
|||||||
|
|
||||||
# ---> Serena MCP memories
|
# ---> Serena MCP memories
|
||||||
.serena/
|
.serena/
|
||||||
|
|
||||||
|
# ---> Deploy script (로컬 전용)
|
||||||
|
deploy.sh
|
||||||
|
|||||||
158
deploy.sh
158
deploy.sh
@@ -1,158 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# SAM React 배포 스크립트
|
|
||||||
# 사용법: ./deploy.sh [dev|prod]
|
|
||||||
#
|
|
||||||
|
|
||||||
set -e # 에러 발생 시 중단
|
|
||||||
|
|
||||||
# ===========================================
|
|
||||||
# 설정
|
|
||||||
# ===========================================
|
|
||||||
ENV="${1:-dev}"
|
|
||||||
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
|
||||||
BUILD_FILE="next-build.tar.gz"
|
|
||||||
|
|
||||||
# 개발 서버 설정
|
|
||||||
DEV_SSH="hskwon@114.203.209.83"
|
|
||||||
DEV_PATH="/home/webservice/react"
|
|
||||||
DEV_PM2="sam-react"
|
|
||||||
|
|
||||||
# 운영 서버 설정 (추후 설정)
|
|
||||||
# PROD_SSH="user@prod-server"
|
|
||||||
# PROD_PATH="/var/www/react"
|
|
||||||
# PROD_PM2="sam-react-prod"
|
|
||||||
|
|
||||||
# 환경별 설정 선택
|
|
||||||
case $ENV in
|
|
||||||
dev)
|
|
||||||
SSH_TARGET=$DEV_SSH
|
|
||||||
REMOTE_PATH=$DEV_PATH
|
|
||||||
PM2_APP=$DEV_PM2
|
|
||||||
;;
|
|
||||||
prod)
|
|
||||||
echo "❌ 운영 환경은 아직 설정되지 않았습니다."
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "❌ 알 수 없는 환경: $ENV"
|
|
||||||
echo "사용법: ./deploy.sh [dev|prod]"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# ===========================================
|
|
||||||
# 함수 정의
|
|
||||||
# ===========================================
|
|
||||||
log() {
|
|
||||||
echo ""
|
|
||||||
echo "=========================================="
|
|
||||||
echo "🚀 $1"
|
|
||||||
echo "=========================================="
|
|
||||||
}
|
|
||||||
|
|
||||||
error() {
|
|
||||||
echo ""
|
|
||||||
echo "❌ 에러: $1"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# ===========================================
|
|
||||||
# 1. 빌드
|
|
||||||
# ===========================================
|
|
||||||
log "Step 1/5: 빌드 시작"
|
|
||||||
|
|
||||||
# .env.local 백업
|
|
||||||
if [ -f .env.local ]; then
|
|
||||||
echo "📦 .env.local 백업..."
|
|
||||||
mv .env.local .env.local.bak
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 빌드 실행
|
|
||||||
echo "🔨 npm run build..."
|
|
||||||
npm run build || {
|
|
||||||
# 빌드 실패 시 .env.local 복원
|
|
||||||
if [ -f .env.local.bak ]; then
|
|
||||||
mv .env.local.bak .env.local
|
|
||||||
fi
|
|
||||||
error "빌드 실패"
|
|
||||||
}
|
|
||||||
|
|
||||||
# .env.local 복원
|
|
||||||
if [ -f .env.local.bak ]; then
|
|
||||||
echo "📦 .env.local 복원..."
|
|
||||||
mv .env.local.bak .env.local
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "✅ 빌드 완료"
|
|
||||||
|
|
||||||
# ===========================================
|
|
||||||
# 2. 압축
|
|
||||||
# ===========================================
|
|
||||||
log "Step 2/5: 압축 시작"
|
|
||||||
|
|
||||||
# 기존 압축 파일 삭제
|
|
||||||
rm -f $BUILD_FILE
|
|
||||||
|
|
||||||
# .next 폴더 압축 (캐시 제외)
|
|
||||||
echo "📦 .next 폴더 압축 중..."
|
|
||||||
COPYFILE_DISABLE=1 tar --exclude='.next/cache' -czf $BUILD_FILE .next
|
|
||||||
|
|
||||||
# 파일 크기 확인
|
|
||||||
FILE_SIZE=$(ls -lh $BUILD_FILE | awk '{print $5}')
|
|
||||||
echo "✅ 압축 완료: $BUILD_FILE ($FILE_SIZE)"
|
|
||||||
|
|
||||||
# ===========================================
|
|
||||||
# 3. 업로드
|
|
||||||
# ===========================================
|
|
||||||
log "Step 3/5: 서버 업로드"
|
|
||||||
|
|
||||||
echo "📤 $SSH_TARGET:$REMOTE_PATH 로 업로드 중..."
|
|
||||||
scp $BUILD_FILE $SSH_TARGET:$REMOTE_PATH/
|
|
||||||
|
|
||||||
echo "✅ 업로드 완료"
|
|
||||||
|
|
||||||
# ===========================================
|
|
||||||
# 4. 원격 배포 실행
|
|
||||||
# ===========================================
|
|
||||||
log "Step 4/5: 원격 배포 실행"
|
|
||||||
|
|
||||||
echo "🔧 서버에서 배포 스크립트 실행 중..."
|
|
||||||
ssh $SSH_TARGET << EOF
|
|
||||||
cd $REMOTE_PATH
|
|
||||||
|
|
||||||
echo "🗑️ 기존 .next 폴더 삭제..."
|
|
||||||
rm -rf .next
|
|
||||||
|
|
||||||
echo "📦 압축 해제 중..."
|
|
||||||
tar xzf $BUILD_FILE
|
|
||||||
|
|
||||||
echo "🔄 PM2 재시작..."
|
|
||||||
pm2 restart $PM2_APP
|
|
||||||
|
|
||||||
echo "🧹 압축 파일 정리..."
|
|
||||||
rm -f $BUILD_FILE
|
|
||||||
|
|
||||||
echo "✅ 서버 배포 완료"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# ===========================================
|
|
||||||
# 5. 정리
|
|
||||||
# ===========================================
|
|
||||||
log "Step 5/5: 로컬 정리"
|
|
||||||
|
|
||||||
echo "🧹 로컬 압축 파일 삭제..."
|
|
||||||
rm -f $BUILD_FILE
|
|
||||||
|
|
||||||
# ===========================================
|
|
||||||
# 완료
|
|
||||||
# ===========================================
|
|
||||||
echo ""
|
|
||||||
echo "=========================================="
|
|
||||||
echo "🎉 배포 완료!"
|
|
||||||
echo "=========================================="
|
|
||||||
echo "환경: $ENV"
|
|
||||||
echo "서버: $SSH_TARGET"
|
|
||||||
echo "경로: $REMOTE_PATH"
|
|
||||||
echo "시간: $(date '+%Y-%m-%d %H:%M:%S')"
|
|
||||||
echo "=========================================="
|
|
||||||
Reference in New Issue
Block a user