2025-09-16 14:04:11 +09:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
# OS 확인
|
|
|
|
|
OS_INFO=$(grep '^ID=' /etc/os-release)
|
|
|
|
|
if [[ "$OS_INFO" != *"ubuntu"* ]]; then
|
|
|
|
|
echo "This script runs on Ubuntu only."
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# 키보드 레이아웃을 영문(US)으로 설정
|
|
|
|
|
echo "Setting keyboard layout to English (US)..."
|
|
|
|
|
|
|
|
|
|
# CLI 환경에서 키보드 레이아웃 설정
|
|
|
|
|
if command -v loadkeys >/dev/null 2>&1 && [ $(id -u) -eq 0 ]; then
|
|
|
|
|
echo "Setting console keyboard layout to US..."
|
|
|
|
|
loadkeys us
|
|
|
|
|
elif command -v loadkeys >/dev/null 2>&1; then
|
|
|
|
|
echo "To change keyboard layout, run with sudo: sudo loadkeys us"
|
|
|
|
|
# 권한이 없어도 시도는 해봄
|
|
|
|
|
sudo loadkeys us 2>/dev/null || true
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "Starting Production Environment..."
|
|
|
|
|
|
|
|
|
|
# 환경 변수 파일 로드
|
|
|
|
|
if [ -f .env.production ]; then
|
|
|
|
|
echo "Loading production environment variables..."
|
|
|
|
|
set -a
|
|
|
|
|
source .env.production
|
|
|
|
|
set +a
|
|
|
|
|
else
|
|
|
|
|
echo "Error: .env.production file not found!"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "Starting Production Environment..."
|
|
|
|
|
|
2025-09-16 14:30:31 +09:00
|
|
|
# .sh 파일들에 실행 권한 부여
|
|
|
|
|
echo "Setting execute permissions for shell scripts..."
|
|
|
|
|
chmod +x *.sh
|
|
|
|
|
|
2025-09-16 14:04:11 +09:00
|
|
|
export NODE_ENV=production
|
|
|
|
|
|
|
|
|
|
# 웹서비스만 정리 (DB는 유지)
|
|
|
|
|
echo "Stopping web service only (keeping database running)..."
|
|
|
|
|
docker stop bns_system 2>/dev/null || true
|
|
|
|
|
docker rm bns_system 2>/dev/null || true
|
|
|
|
|
|
|
|
|
|
echo "Pruning Docker system (excluding volumes to preserve DB data)..."
|
|
|
|
|
# 컨테이너 정리 (볼륨은 제외하여 DB 데이터 보존)
|
|
|
|
|
docker system prune -af
|
|
|
|
|
docker image prune -af
|
|
|
|
|
# docker volume prune -af # DB 데이터 보존을 위해 주석 처리
|
|
|
|
|
|
|
|
|
|
# Git 관련 명령어 실행
|
|
|
|
|
git reset --hard
|
|
|
|
|
git checkout main
|
|
|
|
|
|
|
|
|
|
# 강제로 리모트 브랜치의 내용을 가져옴
|
|
|
|
|
if ! git fetch origin; then
|
|
|
|
|
echo "Git fetch failed. Exiting script."
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if ! git reset --hard origin/main; then
|
|
|
|
|
echo "Git reset failed. Exiting script."
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
2025-09-16 14:21:49 +09:00
|
|
|
# 웹서비스 컨테이너 빌드하고 시작
|
2025-09-16 14:04:11 +09:00
|
|
|
echo "Starting web service..."
|
|
|
|
|
docker-compose -f docker-compose.prod.yml up --build -d bns_system
|
|
|
|
|
|
|
|
|
|
echo "Production environment setup complete!"
|
|
|
|
|
echo "Web service: Restarted with latest code"
|