chore(dev): Windows Docker Desktop 자동 HMR 복원
Docker Desktop on Windows 의 bind mount 가 host inotify 이벤트를 컨테이너로 전파하지 못해 Turbopack file watcher 가 host 편집을 감지 못 함. webpack 은 WATCHPACK_POLLING=true 폴백을 지원하므로 Windows 에서만 Turbopack 을 끄고 webpack 으로 폴백 → 자동 HMR 복원. - frontend/package.json: dev:docker:nopack 스크립트 추가 (next dev, no turbopack) - docker/dev/docker-compose.windows.yml: Windows 전용 frontend command override - scripts/start/invyone-start-docker-all.bat: windows.yml 자동 merge Mac/Linux 진입점은 영향 없음 (start.bat 만 windows override 활성). 첫 컴파일은 약간 느려지지만 (~10-30%) 수정→반영 시간이 80s → 1~3s 로 단축. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,16 @@
|
|||||||
|
# Windows + Docker Desktop 전용 override.
|
||||||
|
#
|
||||||
|
# 배경: Docker Desktop (Windows + WSL2) 의 bind mount 가 host inotify 이벤트를
|
||||||
|
# 컨테이너로 전파하지 못해, Turbopack 의 file watcher 가 host 편집을 감지 못 함.
|
||||||
|
# webpack 은 WATCHPACK_POLLING=true 폴백을 지원하므로, Windows 에서만
|
||||||
|
# Turbopack 을 끄고 webpack 으로 폴백 → 자동 HMR 복원.
|
||||||
|
#
|
||||||
|
# 적용 범위: scripts/start/invyone-start-docker-all.bat 에서 명시적으로 -f 추가.
|
||||||
|
# Mac/Linux 사용자가 쓰는 다른 진입점에는 영향 없음.
|
||||||
|
#
|
||||||
|
# Trade-off: 첫 컴파일 약간 느려짐 (~10-30%). 그러나 수정 → 화면 반영이 1~3초로
|
||||||
|
# 단축되어 전체 개발 사이클은 압도적으로 빨라짐.
|
||||||
|
|
||||||
|
services:
|
||||||
|
frontend:
|
||||||
|
command: ["npm", "run", "dev:docker:nopack"]
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "NODE_OPTIONS='--max-old-space-size=8192' next dev --turbopack -p 9771",
|
"dev": "NODE_OPTIONS='--max-old-space-size=8192' next dev --turbopack -p 9771",
|
||||||
"dev:docker": "next dev --turbopack -p 3000",
|
"dev:docker": "next dev --turbopack -p 3000",
|
||||||
|
"dev:docker:nopack": "next dev -p 3000",
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
"build:no-lint": "DISABLE_ESLINT_PLUGIN=true next build",
|
"build:no-lint": "DISABLE_ESLINT_PLUGIN=true next build",
|
||||||
"start": "next start",
|
"start": "next start",
|
||||||
|
|||||||
@@ -5,6 +5,9 @@ chcp 65001 >nul
|
|||||||
|
|
||||||
pushd "%~dp0..\.."
|
pushd "%~dp0..\.."
|
||||||
set COMPOSE_FILE=docker\dev\docker-compose.invyone.yml
|
set COMPOSE_FILE=docker\dev\docker-compose.invyone.yml
|
||||||
|
REM Windows 전용 override — Turbopack 끄고 webpack 으로 폴백해서 host 편집 자동 HMR 복원.
|
||||||
|
REM (Docker Desktop on Windows 의 bind mount inotify 미전파 이슈 회피)
|
||||||
|
set COMPOSE_WIN=docker\dev\docker-compose.windows.yml
|
||||||
|
|
||||||
where docker >nul 2>&1
|
where docker >nul 2>&1
|
||||||
if errorlevel 1 (
|
if errorlevel 1 (
|
||||||
@@ -28,9 +31,15 @@ if not exist "%COMPOSE_FILE%" (
|
|||||||
pause
|
pause
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
|
if not exist "%COMPOSE_WIN%" (
|
||||||
|
echo [invyone] Windows override 파일을 찾을 수 없음: %COMPOSE_WIN%
|
||||||
|
popd
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
echo [invyone] 도커 컨테이너 기동 중...
|
echo [invyone] 도커 컨테이너 기동 중...
|
||||||
docker compose -f %COMPOSE_FILE% up -d
|
docker compose -f %COMPOSE_FILE% -f %COMPOSE_WIN% up -d
|
||||||
if errorlevel 1 (
|
if errorlevel 1 (
|
||||||
echo [invyone] 기동 실패. 로그를 확인해주세요.
|
echo [invyone] 기동 실패. 로그를 확인해주세요.
|
||||||
popd
|
popd
|
||||||
@@ -40,7 +49,7 @@ if errorlevel 1 (
|
|||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo [invyone] 컨테이너 상태:
|
echo [invyone] 컨테이너 상태:
|
||||||
docker compose -f %COMPOSE_FILE% ps
|
docker compose -f %COMPOSE_FILE% -f %COMPOSE_WIN% ps
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo [invyone] 접속 URL:
|
echo [invyone] 접속 URL:
|
||||||
|
|||||||
Reference in New Issue
Block a user