#!/bin/bash # TK-MP-Project Docker 실행 스크립트 # 사용법: ./docker-run.sh [환경] [명령] # 환경: dev (기본), prod, synology # 명령: up, down, build, logs, ps set -e # 기본값 설정 ENV=${1:-dev} CMD=${2:-up} # 환경별 설정 파일 경로 case $ENV in "dev"|"development") ENV_FILE="env.development" COMPOSE_FILE="docker-compose.yml" echo "🔧 개발 환경으로 실행합니다..." ;; "prod"|"production") ENV_FILE="env.production" COMPOSE_FILE="docker-compose.yml" echo "🚀 프로덕션 환경으로 실행합니다..." ;; "synology"|"nas") ENV_FILE="env.synology" COMPOSE_FILE="docker-compose.yml" echo "🏠 시놀로지 NAS 환경으로 실행합니다..." ;; *) echo "❌ 지원하지 않는 환경입니다: $ENV" echo "사용 가능한 환경: dev, prod, synology" exit 1 ;; esac # 환경 파일 존재 확인 if [ ! -f "$ENV_FILE" ]; then echo "❌ 환경 파일을 찾을 수 없습니다: $ENV_FILE" exit 1 fi # Docker Compose 파일 존재 확인 if [ ! -f "$COMPOSE_FILE" ]; then echo "❌ Docker Compose 파일을 찾을 수 없습니다: $COMPOSE_FILE" exit 1 fi echo "📋 환경 파일: $ENV_FILE" echo "🐳 Compose 파일: $COMPOSE_FILE" # Docker Compose 명령 실행 case $CMD in "up") echo "🚀 컨테이너를 시작합니다..." docker-compose --env-file "$ENV_FILE" -f "$COMPOSE_FILE" up -d echo "✅ 컨테이너가 시작되었습니다!" echo "" echo "📊 서비스 상태:" docker-compose --env-file "$ENV_FILE" -f "$COMPOSE_FILE" ps ;; "down") echo "🛑 컨테이너를 중지합니다..." docker-compose --env-file "$ENV_FILE" -f "$COMPOSE_FILE" down echo "✅ 컨테이너가 중지되었습니다!" ;; "build") echo "🔨 이미지를 빌드합니다..." docker-compose --env-file "$ENV_FILE" -f "$COMPOSE_FILE" build echo "✅ 이미지 빌드가 완료되었습니다!" ;; "rebuild") echo "🔨 이미지를 재빌드합니다..." docker-compose --env-file "$ENV_FILE" -f "$COMPOSE_FILE" build --no-cache echo "✅ 이미지 재빌드가 완료되었습니다!" ;; "logs") echo "📋 로그를 확인합니다..." docker-compose --env-file "$ENV_FILE" -f "$COMPOSE_FILE" logs -f ;; "ps"|"status") echo "📊 서비스 상태:" docker-compose --env-file "$ENV_FILE" -f "$COMPOSE_FILE" ps ;; "restart") echo "🔄 컨테이너를 재시작합니다..." docker-compose --env-file "$ENV_FILE" -f "$COMPOSE_FILE" restart echo "✅ 컨테이너가 재시작되었습니다!" ;; *) echo "❌ 지원하지 않는 명령입니다: $CMD" echo "사용 가능한 명령: up, down, build, rebuild, logs, ps, restart" exit 1 ;; esac echo "" echo "🎯 사용법 예시:" echo " 개발 환경 시작: ./docker-run.sh dev up" echo " 프로덕션 환경 시작: ./docker-run.sh prod up" echo " 시놀로지 환경 시작: ./docker-run.sh synology up" echo " 로그 확인: ./docker-run.sh dev logs" echo " 상태 확인: ./docker-run.sh dev ps"