수정정

This commit is contained in:
chpark 2025-09-23 17:00:07 +09:00
parent b3df6fb72e
commit 3460a7f5fd
4 changed files with 258 additions and 1 deletions

View File

@ -9,17 +9,20 @@ services:
ACCEPT_EULA: Y
SA_PASSWORD: ${SA_PASSWORD:-wace0909!!}
MSSQL_PID: ${MSSQL_PID:-Express}
MSSQL_ENCRYPT: 'false'
MSSQL_TRUST_SERVER_CERTIFICATE: 'true'
TZ: Asia/Seoul
ports:
- "11433:1433"
volumes:
- mssql_data:/var/opt/mssql
- ./mssql-init:/docker-entrypoint-initdb.d
- ./mssql-backup:/var/opt/mssql/backup
networks:
- mssql_network
hostname: mssql-server
user: root
mem_limit: 2g
cpus: 2
# MSSQL 관리용 Adminer (선택사항)
mssql-adminer:

82
git-update.sh Normal file
View File

@ -0,0 +1,82 @@
#!/bin/bash
# Git 강제 업데이트 전용 스크립트
echo "=== Git 강제 업데이트 ==="
echo ""
if [ ! -d ".git" ]; then
echo "❌ Git 저장소가 아닙니다."
echo "다음 명령어로 저장소를 클론하세요:"
echo "git clone http://39.117.244.52:3000/chpark/database.git"
exit 1
fi
# 현재 상태 표시
echo "📋 현재 Git 상태:"
git status --short
echo ""
# 현재 브랜치 확인
CURRENT_BRANCH=$(git branch --show-current)
echo "현재 브랜치: $CURRENT_BRANCH"
echo ""
# 백업 옵션
if [ "$1" = "--no-backup" ]; then
echo "⚠️ 백업 없이 강제 업데이트합니다."
else
# 변경사항이 있으면 백업
if ! git diff --quiet || ! git diff --cached --quiet; then
echo "💾 로컬 변경사항을 백업합니다..."
STASH_NAME="backup-$(date '+%Y%m%d-%H%M%S')"
git stash push -m "$STASH_NAME"
echo "✅ 백업 완료: $STASH_NAME"
echo ""
fi
fi
# 원격 저장소 정보 업데이트
echo "📡 원격 저장소 정보 가져오는 중..."
git fetch origin
# 강제 리셋
echo "🔄 최신 소스로 강제 업데이트 중..."
git reset --hard origin/$CURRENT_BRANCH
# 추적되지 않는 파일 정리
echo "🧹 불필요한 파일 정리 중..."
git clean -fd
echo ""
echo "✅ Git 강제 업데이트 완료!"
echo ""
# 업데이트 결과
echo "📊 업데이트 결과:"
echo "최신 커밋:"
git log --oneline -3
echo ""
echo "변경된 파일 (최근 커밋):"
git diff --name-only HEAD~1 HEAD 2>/dev/null || echo "변경된 파일이 없습니다."
echo ""
# Stash 목록 표시
STASH_COUNT=$(git stash list | wc -l)
if [ $STASH_COUNT -gt 0 ]; then
echo "💾 백업된 변경사항 ($STASH_COUNT개):"
git stash list | head -5
if [ $STASH_COUNT -gt 5 ]; then
echo "... 그리고 $((STASH_COUNT - 5))개 더"
fi
echo ""
echo "백업 복원 방법:"
echo " 최근 백업 복원: git stash pop"
echo " 특정 백업 복원: git stash apply stash@{번호}"
echo " 백업 목록 보기: git stash list"
fi
echo ""
echo "🚀 이제 데이터베이스를 시작하려면:"
echo " ./start-all-db.sh"

View File

@ -5,6 +5,43 @@
echo "=== 3개 데이터베이스 컨테이너를 시작합니다 ==="
echo ""
# Git에서 최신 소스 강제 업데이트
echo "0. Git 최신 소스 업데이트..."
if [ -d ".git" ]; then
echo "Git 저장소 감지됨. 최신 소스를 받아옵니다..."
# 현재 변경사항 백업 (있다면)
if ! git diff --quiet || ! git diff --cached --quiet; then
echo "로컬 변경사항이 있습니다. 백업 중..."
git stash push -m "Auto backup before update $(date)"
echo "변경사항이 stash에 백업되었습니다."
fi
# 원격 저장소에서 최신 정보 가져오기
echo "원격 저장소 정보 업데이트 중..."
git fetch origin
# 현재 브랜치 확인
CURRENT_BRANCH=$(git branch --show-current)
echo "현재 브랜치: $CURRENT_BRANCH"
# 강제로 원격 브랜치로 리셋
echo "최신 소스로 강제 업데이트 중..."
git reset --hard origin/$CURRENT_BRANCH
# 추적되지 않는 파일 정리
git clean -fd
echo "✅ Git 업데이트 완료!"
# 최근 커밋 정보 표시
echo "최신 커밋 정보:"
git log --oneline -3
else
echo "⚠️ Git 저장소가 아닙니다. 업데이트를 건너뜁니다."
fi
echo ""
# MariaDB 시작
echo "1. MariaDB 시작..."
if [ -f "docker-compose-mariadb.yml" ]; then

135
update-and-start.sh Normal file
View File

@ -0,0 +1,135 @@
#!/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"