generated from ttipo/project-base
cd089f76fb
없으면 Dockerfile 의 `COPY . .` 가 폴더를 통째로 이미지에 넣는다.
Windows 호스트에서 백엔드 빌드 컨텍스트가 263MB(호스트 node_modules 포함)로
4분 넘게 걸렸고, 두 가지 문제가 있었다.
- 호스트(Windows) node_modules 가 컨테이너의 Linux 모듈을 덮어써 swc 등
네이티브 모듈이 깨질 수 있다
- backend/.env.{환경} 의 키가 이미지 레이어에 남는다(env 는 compose 가
실행할 때 넣으므로 이미지에 필요 없다)
node_modules·dist·coverage·.env*·uploads 등을 제외해 컨텍스트가 약 1MB 가 됐다.
프론트엔드는 VITE_API_BASE_URL 을 build arg 로 받으므로 결과가 같다.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
23 lines
799 B
Plaintext
23 lines
799 B
Plaintext
# 이미지 빌드 컨텍스트에서 뺄 파일 — 빌드를 빠르게 하고, 호스트 산출물·로컬 설정이 이미지에 들어가지 않게 한다.
|
|
# (없으면 Dockerfile 의 `COPY . .` 가 아래 파일을 전부 이미지에 넣는다)
|
|
|
|
# 의존성 — 이미지 안에서 npm ci 로 설치한다.
|
|
# 개발 서버를 호스트에서 띄우면 node_modules 가 생기는데, Windows 용 모듈이 Linux 용을 덮어쓰면 빌드가 깨진다.
|
|
node_modules
|
|
|
|
# 빌드·테스트 산출물 — 이미지 안에서 다시 만든다
|
|
dist
|
|
coverage
|
|
*.tsbuildinfo
|
|
.vite
|
|
|
|
# 환경변수 — 이미지 빌드는 VITE_API_BASE_URL 을 build arg 로 받는다(루트 .env → compose).
|
|
# 이 폴더의 .env.* 는 Docker 없이 vite 를 띄울 때만 쓴다
|
|
.env
|
|
.env.*
|
|
|
|
# 기타
|
|
*.log
|
|
.git
|
|
.idea
|