🚀 자동 배포 시스템 설정
- Prisma Client darwin-arm64 바이너리 타겟 추가 - 웹훅 기반 자동 배포 스크립트 추가 - PM2 설정 파일들 추가 - 배포 가이드 문서 추가
This commit is contained in:
66
deploy.sh
Executable file
66
deploy.sh
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 배포 스크립트 - 서버에서 실행
|
||||
# 사용법: ./deploy.sh
|
||||
|
||||
set -e # 오류 발생 시 스크립트 중단
|
||||
|
||||
# 프로젝트 경로
|
||||
PROJECT_DIR="/var/www/music/music-admin"
|
||||
LOG_FILE="/var/log/music-admin-deploy.log"
|
||||
|
||||
# 로그 함수
|
||||
log() {
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
|
||||
}
|
||||
|
||||
log "=== 배포 시작 ==="
|
||||
|
||||
# 프로젝트 디렉토리로 이동
|
||||
cd "$PROJECT_DIR" || {
|
||||
log "ERROR: 프로젝트 디렉토리로 이동 실패: $PROJECT_DIR"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Git pull
|
||||
log "Git pull 실행 중..."
|
||||
git pull origin main || {
|
||||
log "ERROR: Git pull 실패"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 의존성 설치
|
||||
log "의존성 설치 중..."
|
||||
npm ci --production=false || {
|
||||
log "ERROR: npm install 실패"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Prisma 클라이언트 생성
|
||||
log "Prisma 클라이언트 생성 중..."
|
||||
npx prisma generate || {
|
||||
log "ERROR: Prisma generate 실패"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 데이터베이스 마이그레이션 (필요시)
|
||||
log "데이터베이스 마이그레이션 실행 중..."
|
||||
npx prisma db push || {
|
||||
log "WARNING: 데이터베이스 마이그레이션 실패 (계속 진행)"
|
||||
}
|
||||
|
||||
# 프로덕션 빌드
|
||||
log "프로덕션 빌드 중..."
|
||||
npm run build || {
|
||||
log "ERROR: 빌드 실패"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# PM2로 앱 재시작
|
||||
log "PM2로 앱 재시작 중..."
|
||||
pm2 restart music-admin || pm2 start ecosystem.config.js || {
|
||||
log "ERROR: PM2 재시작 실패"
|
||||
exit 1
|
||||
}
|
||||
|
||||
log "=== 배포 완료 ==="
|
||||
Reference in New Issue
Block a user