add: 서버 배포 스크립트 (start-server.sh)
- Ubuntu 서버에서 git fetch + reset으로 최신 소스 적용 - Docker 시스템 정리 후 빌드 & 실행 - 데이터 디렉토리 자동 생성 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ==========================================
|
||||
# Crawl Manager 서버 배포 스크립트 (Ubuntu)
|
||||
# 사용법: chmod +x start-server.sh && ./start-server.sh
|
||||
# ==========================================
|
||||
|
||||
# OS 확인
|
||||
OS_INFO=$(grep '^ID=' /etc/os-release)
|
||||
if [[ "$OS_INFO" != *"ubuntu"* ]]; then
|
||||
echo "This script runs on Ubuntu only."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " Crawl Manager 서버 배포"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# 환경 변수 파일 확인
|
||||
if [ -f .env.production ]; then
|
||||
echo "[OK] .env.production 로드 중..."
|
||||
set -a
|
||||
source .env.production
|
||||
set +a
|
||||
else
|
||||
echo "[ERROR] .env.production 파일이 없습니다!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export NODE_ENV=production
|
||||
|
||||
# 이전 컨테이너 정리
|
||||
echo ""
|
||||
echo "[1/5] 기존 컨테이너 정리..."
|
||||
docker compose down 2>/dev/null || docker-compose down 2>/dev/null
|
||||
|
||||
echo "[2/5] Docker 시스템 정리..."
|
||||
docker system prune -af
|
||||
docker image prune -af
|
||||
|
||||
# Git 최신 소스 받기
|
||||
echo ""
|
||||
echo "[3/5] Git 최신 소스 받기..."
|
||||
git reset --hard
|
||||
|
||||
if ! git fetch origin; then
|
||||
echo "[ERROR] git fetch 실패"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! git reset --hard origin/main; then
|
||||
echo "[ERROR] git reset 실패"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "[OK] 최신 소스 적용 완료"
|
||||
git log --oneline -3
|
||||
|
||||
# 데이터 디렉토리 생성
|
||||
echo ""
|
||||
echo "[4/5] 데이터 디렉토리 준비..."
|
||||
mkdir -p /home/crawl-manager/postgres_data
|
||||
mkdir -p /home/crawl-manager/app_data
|
||||
|
||||
# Docker 빌드 & 실행
|
||||
echo ""
|
||||
echo "[5/5] Docker 빌드 및 실행..."
|
||||
docker compose up --build --force-recreate -d
|
||||
|
||||
# 상태 확인
|
||||
echo ""
|
||||
echo "컨테이너 상태 확인 중..."
|
||||
sleep 5
|
||||
docker compose ps
|
||||
echo ""
|
||||
docker compose logs --tail=30 crawl-manager
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " 배포 완료!"
|
||||
echo " 관리자: https://admin.startover.co.kr/admin"
|
||||
echo " DB 외부접속: $(hostname -I | awk '{print $1}'):11137"
|
||||
echo "=========================================="
|
||||
Reference in New Issue
Block a user