@echo off REM stock_chart_site - SSH/CI 친화 재시작 스크립트 REM REM restart.bat 과의 차이: pause 가 없음. SSH 비대화형 (예: ssh user@host "restart-ci.bat") REM 에서 멈추지 않고 끝까지 실행. 에러는 종료 코드로만 알린다. REM REM 일반 사용 시엔 restart.bat 을 쓰는게 출력 검토에 편하다. setlocal enabledelayedexpansion cd /d "%~dp0" echo === stock_chart_site restart-ci === where docker >nul 2>&1 if errorlevel 1 ( echo [ERROR] docker not found exit /b 1 ) docker info >nul 2>&1 if errorlevel 1 ( echo [ERROR] Docker Desktop not running exit /b 1 ) set USE_GPU=0 where nvidia-smi >nul 2>&1 if not errorlevel 1 ( nvidia-smi >nul 2>&1 if not errorlevel 1 set USE_GPU=1 ) if "%USE_GPU%"=="1" ( echo [GPU] using GPU profile set COMPOSE_FILES=-f docker-compose.yml -f docker-compose.gpu.yml ) else ( echo [CPU] using CPU profile set COMPOSE_FILES=-f docker-compose.yml ) for /f %%i in ('docker compose %COMPOSE_FILES% ps --status running --quiet backend web 2^>nul ^| find /v /c ""') do set RUN_COUNT=%%i if "%RUN_COUNT%"=="0" ( echo [ERROR] backend/web not running. run build.bat first. exit /b 1 ) echo === docker compose up -d --force-recreate --no-deps backend web === docker compose %COMPOSE_FILES% up -d --force-recreate --no-deps backend web if errorlevel 1 ( echo [ERROR] restart failed exit /b 1 ) echo === status === docker compose %COMPOSE_FILES% ps endlocal exit /b 0