fix(restart.bat): backend/web 만 재시작 (db 제외)
리뷰어 지적: docker compose restart 는 서비스명 생략시 db 까지 같이 재시작한다. db 까지 같이 내려가면 backend lifespan 부팅 시드가 db healthcheck 와 무관하게 실행돼서 race 로 seed 가 다시 실패할 수 있다 (restart 는 depends_on.condition: service_healthy 를 지키지 않음). db 는 postgres_data 볼륨에 상태가 영속이라 재시작할 이유도 없음. 추가: 실행중 컨테이너 체크도 backend/web 기준으로 좁힘 — db 만 떠있고 backend 가 down 인 경우 통과되던 버그 수정.
This commit is contained in:
17
restart.bat
17
restart.bat
@@ -48,20 +48,23 @@ if "%USE_GPU%"=="1" (
|
||||
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
|
||||
REM 3) backend/web 컨테이너 살아있는지 확인 — 없으면 build.bat 안내
|
||||
REM (db 까지 포함해서 세면 db 만 떠있어도 통과돼버려서 부정확)
|
||||
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 [INFO] 실행 중인 컨테이너가 없습니다. 처음이거나 down 된 상태입니다.
|
||||
echo [INFO] 실행 중인 backend/web 컨테이너가 없습니다. 처음이거나 down 된 상태입니다.
|
||||
echo build.bat 으로 빌드 + 기동하세요.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM 4) 재시작 (전체 — backend lifespan 부팅 시드, web next dev 모두 새로 시작)
|
||||
REM 4) backend + web 만 재시작 — db 는 건드리지 않음.
|
||||
REM docker compose restart 는 depends_on.condition: service_healthy 를 지키지 않으므로
|
||||
REM db 까지 같이 재시작하면 backend lifespan 부팅 시드가 db 준비 전에 실행될 수 있다.
|
||||
REM db 는 상태 (postgres_data 볼륨) 가 영속이라 재시작할 이유도 없다.
|
||||
echo.
|
||||
echo === docker compose restart ===
|
||||
docker compose %COMPOSE_FILES% restart
|
||||
echo === docker compose restart backend web ===
|
||||
docker compose %COMPOSE_FILES% restart backend web
|
||||
if errorlevel 1 (
|
||||
echo [ERROR] restart 실패.
|
||||
pause
|
||||
|
||||
Reference in New Issue
Block a user