#!/bin/bash set -e echo "==========================================" echo "QuantBench Executor Deployment Script" echo "==========================================" echo "" # 컬러 출력 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # 함수 정의 print_success() { echo -e "${GREEN}✓ $1${NC}" } print_error() { echo -e "${RED}✗ $1${NC}" } print_warning() { echo -e "${YELLOW}⚠ $1${NC}" } # Docker 설치 확인 if ! command -v docker &> /dev/null; then print_error "Docker가 설치되어 있지 않습니다." echo "Docker를 먼저 설치해주세요: https://docs.docker.com/get-docker/" exit 1 fi if ! command -v docker-compose &> /dev/null; then print_error "Docker Compose가 설치되어 있지 않습니다." echo "Docker Compose를 먼저 설치해주세요: https://docs.docker.com/compose/install/" exit 1 fi print_success "Docker 환경 확인 완료" # .env 파일 확인 if [ ! -f .env ]; then print_warning ".env 파일이 없습니다. .env.example을 복사합니다." cp .env.example .env print_warning ".env 파일을 수정하여 적절한 설정값을 입력해주세요." fi # 배포 모드 선택 echo "" echo "배포 모드를 선택하세요:" echo "1) Production (포트 8000)" echo "2) Development (포트 8001)" echo "3) 모두" read -p "선택 (1/2/3): " MODE case $MODE in 1) print_success "Production 모드로 배포합니다..." docker-compose up -d web ;; 2) print_success "Development 모드로 배포합니다..." docker-compose --profile dev up -d web-dev ;; 3) print_success "Production & Development 모드로 배포합니다..." docker-compose --profile dev up -d ;; *) print_error "잘못된 선택입니다." exit 1 ;; esac echo "" print_success "배포가 완료되었습니다!" echo "" # 컨테이너 상태 확인 echo "==========================================" echo "컨테이너 상태" echo "==========================================" docker-compose ps echo "" echo "==========================================" echo "접속 정보" echo "==========================================" if [ "$MODE" = "1" ] || [ "$MODE" = "3" ]; then echo "Production: http://localhost:8000/strategies/" fi if [ "$MODE" = "2" ] || [ "$MODE" = "3" ]; then echo "Development: http://localhost:8001/strategies/" fi echo "" echo "==========================================" echo "유용한 명령어" echo "==========================================" echo "로그 확인: docker-compose logs -f" echo "컨테이너 중지: docker-compose down" echo "컨테이너 재시작: docker-compose restart" echo "전략 초기화: docker-compose exec web python manage.py init_strategies" echo "=========================================="