feat: restart.bat 추가 (재빌드 없이 컨테이너만 재시작)
build.bat 은 이미지 재빌드 포함 — Dockerfile / pyproject.toml / package*.json /
compose 설정 같은 의존성/이미지 구성이 바뀌었을 때 사용.
restart.bat 은 docker compose restart 만 호출 — backend/app/, web/app/ 안의
코드만 바뀐 경우 사용. 바인드 마운트 (./backend:/app, ./web:/app) 덕에 새 코드가
즉시 컨테이너에서 보이고, 재시작으로 lifespan 부팅 시드도 재실행된다.
사용 가이드:
git pull 후 변경 파일이
- pyproject.toml / Dockerfile / package*.json → build.bat
- app/ 코드만 → restart.bat
This commit is contained in:
85
restart.bat
Normal file
85
restart.bat
Normal file
@@ -0,0 +1,85 @@
|
||||
@echo off
|
||||
REM stock_chart_site - Windows 재시작 스크립트
|
||||
REM
|
||||
REM build.bat 와의 차이:
|
||||
REM - build.bat: 이미지 재빌드 포함. Dockerfile / pyproject.toml / package*.json /
|
||||
REM compose 설정 등 의존성/이미지 구성이 바뀌었을 때 사용.
|
||||
REM - restart.bat: 재빌드 없이 컨테이너만 재시작. backend/app/ 또는 web/app/ 안의
|
||||
REM 코드만 바뀐 경우. docker-compose.yml 의 바인드 마운트 (./backend:/app,
|
||||
REM ./web:/app) 덕에 새 코드가 즉시 컨테이너 안에서 보이고, 재시작으로
|
||||
REM lifespan (부팅 시드 등) 도 다시 돌릴 수 있다.
|
||||
REM
|
||||
REM 즉 일반적으로 git pull 후:
|
||||
REM - pyproject.toml / Dockerfile / package*.json 변경 있음 → build.bat
|
||||
REM - app/ 코드만 변경 → restart.bat
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
cd /d "%~dp0"
|
||||
|
||||
echo === stock_chart_site restart ===
|
||||
|
||||
REM 1) Docker 확인
|
||||
where docker >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo [ERROR] docker 명령을 찾을 수 없습니다. Docker Desktop 설치/실행을 확인하세요.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
docker info >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo [ERROR] Docker Desktop이 실행 중이 아닙니다.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM 2) GPU 감지 (build.bat 과 동일 — compose 파일 조합 일치 위해)
|
||||
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] NVIDIA GPU detected. Using GPU profile.
|
||||
set COMPOSE_FILES=-f docker-compose.yml -f docker-compose.gpu.yml
|
||||
) else (
|
||||
echo [CPU] NVIDIA GPU not detected. Using CPU profile.
|
||||
set COMPOSE_FILES=-f docker-compose.yml
|
||||
)
|
||||
|
||||
REM 3) 컨테이너 살아있는지 확인 — 없으면 build.bat 안내
|
||||
docker compose %COMPOSE_FILES% ps --status running --quiet >nul 2>&1
|
||||
for /f %%i in ('docker compose %COMPOSE_FILES% ps --status running --quiet 2^>nul ^| find /v /c ""') do set RUN_COUNT=%%i
|
||||
if "%RUN_COUNT%"=="0" (
|
||||
echo [INFO] 실행 중인 컨테이너가 없습니다. 처음이거나 down 된 상태입니다.
|
||||
echo build.bat 으로 빌드 + 기동하세요.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM 4) 재시작 (전체 — backend lifespan 부팅 시드, web next dev 모두 새로 시작)
|
||||
echo.
|
||||
echo === docker compose restart ===
|
||||
docker compose %COMPOSE_FILES% restart
|
||||
if errorlevel 1 (
|
||||
echo [ERROR] restart 실패.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo.
|
||||
echo === 상태 ===
|
||||
docker compose %COMPOSE_FILES% ps
|
||||
|
||||
echo.
|
||||
echo 접속:
|
||||
echo Web http://localhost:3000
|
||||
echo Backend http://localhost:8000/health
|
||||
echo DB ext http://localhost:8000/health/db
|
||||
echo.
|
||||
echo 로그 보기: docker compose logs -f backend
|
||||
echo 정지: docker compose down
|
||||
echo.
|
||||
pause
|
||||
endlocal
|
||||
Reference in New Issue
Block a user