generated from ttipo/project-base
chore(docker): 백엔드·프론트엔드 .dockerignore 추가
없으면 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>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# 이미지 빌드 컨텍스트에서 뺄 파일 — 빌드를 빠르게 하고, 비밀값·호스트 산출물이 이미지에 들어가지 않게 한다.
|
||||
# (없으면 Dockerfile 의 `COPY . .` 가 아래 파일을 전부 이미지에 넣는다)
|
||||
|
||||
# 의존성 — 이미지 안에서 npm ci 로 설치한다.
|
||||
# 호스트(Windows) node_modules 가 들어오면 Linux 용 모듈을 덮어써 네이티브 모듈(swc 등)이 깨진다.
|
||||
node_modules
|
||||
|
||||
# 빌드·테스트 산출물 — 이미지 안에서 npm run build 로 다시 만든다
|
||||
dist
|
||||
coverage
|
||||
*.tsbuildinfo
|
||||
|
||||
# 환경변수 — 실행할 때 compose 가 env_file/environment 로 넣는다. 이미지에 넣으면 키가 레이어에 남는다
|
||||
.env
|
||||
.env.*
|
||||
|
||||
# 업로드 파일(로컬 디스크 저장소) — 사용자 파일은 이미지가 아니라 볼륨에 둔다
|
||||
uploads
|
||||
|
||||
# 기타
|
||||
*.log
|
||||
.git
|
||||
.vscode
|
||||
.idea
|
||||
@@ -0,0 +1,22 @@
|
||||
# 이미지 빌드 컨텍스트에서 뺄 파일 — 빌드를 빠르게 하고, 호스트 산출물·로컬 설정이 이미지에 들어가지 않게 한다.
|
||||
# (없으면 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
|
||||
Reference in New Issue
Block a user