최종 배포 구조 개선: SSH 제거, git hook 기반 배포
개선 사항: - SSH 키 완전 제거 - git post-receive hook으로 자동 배포 - CI는 빌드만 수행 (publish 생성) - git push 시 서버의 post-receive hook이 자동으로 배포 실행 배포 흐름: 1. git commit & push (로컬) 2. Gitea repository 업데이트 3. post-receive hook 자동 실행 4. 서버에서 빌드 후 배포.sh 호출 5. 배포 완료 장점: - 간단함 (SSH 인증 불필요) - 안전함 (별도의 인증 정보 저장 불필요) - 빠름 (네트워크 오버헤드 최소) - 한 곳에서 관리 (서버의 deploy.sh) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
DEPLOY_HOME="/home/kjh2064"
|
||||
WEB_TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
||||
|
||||
echo "===== 🚀 TaxBaik 배포 스크립트 ====="
|
||||
echo "Web Timestamp: $WEB_TIMESTAMP"
|
||||
|
||||
# Web 배포
|
||||
echo "=== Deploying Web ==="
|
||||
WEB_DEPLOY_DIR="$DEPLOY_HOME/deployments/taxbaik_${WEB_TIMESTAMP}"
|
||||
mkdir -p "$WEB_DEPLOY_DIR"
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "Error: Publish directory required"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 첫 번째 인자는 publish 경로
|
||||
cp -r "$1/web" "$WEB_DEPLOY_DIR/"
|
||||
ln -sfn "$WEB_DEPLOY_DIR/web" "$DEPLOY_HOME/taxbaik_active"
|
||||
echo "✓ Web symlink updated: $WEB_DEPLOY_DIR/web"
|
||||
|
||||
# Admin 배포
|
||||
echo "=== Deploying Admin ==="
|
||||
ADMIN_TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
||||
ADMIN_DEPLOY_DIR="$DEPLOY_HOME/deployments/taxbaik_admin_${ADMIN_TIMESTAMP}"
|
||||
mkdir -p "$ADMIN_DEPLOY_DIR"
|
||||
cp -r "$1/admin" "$ADMIN_DEPLOY_DIR/"
|
||||
ln -sfn "$ADMIN_DEPLOY_DIR/admin" "$DEPLOY_HOME/taxbaik_admin_active"
|
||||
echo "✓ Admin symlink updated: $ADMIN_DEPLOY_DIR/admin"
|
||||
|
||||
# 프로세스 재시작
|
||||
echo "=== Restarting processes ==="
|
||||
pkill -9 -f "TaxBaik.Web" || true
|
||||
pkill -9 -f "TaxBaik.Admin" || true
|
||||
sleep 3
|
||||
|
||||
echo "=== Starting Web ==="
|
||||
cd "$DEPLOY_HOME/taxbaik_active"
|
||||
export ConnectionStrings__Default="Host=localhost;Database=taxbaikdb;Username=taxbaik;Password=taxbaik123"
|
||||
export ASPNETCORE_ENVIRONMENT=Production
|
||||
export ASPNETCORE_URLS=http://127.0.0.1:5001
|
||||
nohup /usr/local/dotnet/dotnet TaxBaik.Web.dll > web.log 2>&1 &
|
||||
sleep 2
|
||||
ps aux | grep TaxBaik.Web | grep -v grep && echo "✓ Web started" || echo "✗ Web failed"
|
||||
|
||||
echo "=== Starting Admin ==="
|
||||
cd "$DEPLOY_HOME/taxbaik_admin_active"
|
||||
export ASPNETCORE_URLS=http://127.0.0.1:5002
|
||||
nohup /usr/local/dotnet/dotnet TaxBaik.Admin.dll > admin.log 2>&1 &
|
||||
sleep 2
|
||||
ps aux | grep TaxBaik.Admin | grep -v grep && echo "✓ Admin started" || echo "✗ Admin failed"
|
||||
|
||||
echo ""
|
||||
echo "===== ✅ 배포 완료 ====="
|
||||
cat "$DEPLOY_HOME/taxbaik_active/wwwroot/version.txt" 2>/dev/null || echo "Version file not found"
|
||||
Reference in New Issue
Block a user