136 lines
4.1 KiB
Bash
136 lines
4.1 KiB
Bash
#!/bin/bash
|
|
|
|
# Git 업데이트 후 데이터베이스 컨테이너 시작 스크립트
|
|
|
|
echo "=== Git 업데이트 및 데이터베이스 시작 ==="
|
|
echo ""
|
|
|
|
# Git 업데이트 옵션 확인
|
|
UPDATE_MODE="normal"
|
|
if [ "$1" = "--force" ] || [ "$1" = "-f" ]; then
|
|
UPDATE_MODE="force"
|
|
echo "🔥 강제 업데이트 모드"
|
|
elif [ "$1" = "--skip" ] || [ "$1" = "-s" ]; then
|
|
UPDATE_MODE="skip"
|
|
echo "⏭️ Git 업데이트 건너뛰기"
|
|
else
|
|
echo "📥 일반 업데이트 모드"
|
|
fi
|
|
echo ""
|
|
|
|
# Git 업데이트 실행
|
|
if [ "$UPDATE_MODE" != "skip" ] && [ -d ".git" ]; then
|
|
echo "Git 저장소에서 최신 소스 업데이트 중..."
|
|
|
|
# 현재 상태 확인
|
|
echo "현재 Git 상태:"
|
|
git status --porcelain
|
|
|
|
# 변경사항 처리
|
|
if [ "$UPDATE_MODE" = "force" ]; then
|
|
echo "🔥 강제 업데이트: 모든 로컬 변경사항을 무시합니다."
|
|
git fetch origin
|
|
CURRENT_BRANCH=$(git branch --show-current)
|
|
git reset --hard origin/$CURRENT_BRANCH
|
|
git clean -fd
|
|
else
|
|
# 변경사항이 있으면 stash
|
|
if ! git diff --quiet || ! git diff --cached --quiet; then
|
|
echo "로컬 변경사항 백업 중..."
|
|
git stash push -m "Auto backup $(date '+%Y-%m-%d %H:%M:%S')"
|
|
fi
|
|
|
|
# Pull 시도
|
|
echo "최신 소스 가져오는 중..."
|
|
if git pull origin $(git branch --show-current); then
|
|
echo "✅ 업데이트 성공!"
|
|
else
|
|
echo "❌ 업데이트 실패. 충돌이 있을 수 있습니다."
|
|
echo "수동으로 해결하거나 --force 옵션을 사용하세요."
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# 업데이트 결과 표시
|
|
echo ""
|
|
echo "📋 최신 커밋 정보:"
|
|
git log --oneline -5
|
|
echo ""
|
|
echo "📊 변경된 파일:"
|
|
git diff --name-only HEAD~1 HEAD || echo "변경된 파일이 없습니다."
|
|
|
|
elif [ ! -d ".git" ]; then
|
|
echo "⚠️ Git 저장소가 아닙니다."
|
|
else
|
|
echo "⏭️ Git 업데이트를 건너뜁니다."
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== 데이터베이스 컨테이너 시작 ==="
|
|
|
|
# 기존 start-all-db.sh 실행 (Git 업데이트 부분 제외)
|
|
# MariaDB 시작
|
|
echo "1. MariaDB 시작..."
|
|
if [ -f "docker-compose-mariadb.yml" ]; then
|
|
docker-compose -f docker-compose-mariadb.yml --env-file mariadb.env up -d
|
|
echo "MariaDB 시작 완료"
|
|
else
|
|
echo "MariaDB 설정 파일이 없습니다."
|
|
fi
|
|
echo ""
|
|
|
|
# MSSQL 시작
|
|
echo "2. MSSQL 시작..."
|
|
if [ -f "docker-compose-mssql.yml" ]; then
|
|
docker-compose -f docker-compose-mssql.yml --env-file mssql.env up -d
|
|
echo "MSSQL 시작 완료"
|
|
else
|
|
echo "MSSQL 설정 파일이 없습니다."
|
|
fi
|
|
echo ""
|
|
|
|
# Oracle 시작
|
|
echo "3. Oracle 시작..."
|
|
if [ -f "docker-compose-oracle.yml" ]; then
|
|
docker-compose -f docker-compose-oracle.yml --env-file oracle.env up -d
|
|
echo "Oracle 시작 완료 (초기화에 시간이 걸릴 수 있습니다)"
|
|
else
|
|
echo "Oracle 설정 파일이 없습니다."
|
|
fi
|
|
echo ""
|
|
|
|
# 잠시 대기 후 상태 확인
|
|
echo "컨테이너 상태를 확인합니다..."
|
|
sleep 10
|
|
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
|
|
|
|
echo ""
|
|
echo "=== 데이터베이스 연결 정보 ==="
|
|
echo ""
|
|
echo "MariaDB:"
|
|
echo " - 포트: 13306"
|
|
echo " - 데이터베이스: wace"
|
|
echo " - 사용자: wace / 비밀번호: wace0909!!"
|
|
echo " - phpMyAdmin: http://localhost:18080"
|
|
echo ""
|
|
echo "MSSQL:"
|
|
echo " - 포트: 11433"
|
|
echo " - 데이터베이스: wace"
|
|
echo " - 사용자: wace / 비밀번호: wace0909!!"
|
|
echo " - Adminer: http://localhost:18081"
|
|
echo ""
|
|
echo "Oracle:"
|
|
echo " - 포트: 11521"
|
|
echo " - SID: ORCL / PDB: ORCLPDB1"
|
|
echo " - 사용자: wace / 비밀번호: wace0909!!"
|
|
echo " - Adminer: http://localhost:18082"
|
|
echo " - Enterprise Manager: http://localhost:15500/em"
|
|
echo ""
|
|
echo "3개 데이터베이스 컨테이너 시작이 완료되었습니다!"
|
|
|
|
echo ""
|
|
echo "💡 사용법:"
|
|
echo " 일반 업데이트: ./update-and-start.sh"
|
|
echo " 강제 업데이트: ./update-and-start.sh --force"
|
|
echo " 업데이트 건너뛰기: ./update-and-start.sh --skip"
|