From cd089f76fb8b6b405b09da2b2ac0884ef8fabacc Mon Sep 17 00:00:00 2001 From: ttipo Date: Mon, 2 Nov 2026 16:46:41 +0900 Subject: [PATCH] =?UTF-8?q?chore(docker):=20=EB=B0=B1=EC=97=94=EB=93=9C?= =?UTF-8?q?=C2=B7=ED=94=84=EB=A1=A0=ED=8A=B8=EC=97=94=EB=93=9C=20.dockerig?= =?UTF-8?q?nore=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 없으면 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 --- backend/.dockerignore | 24 ++++++++++++++++++++++++ frontend/.dockerignore | 22 ++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 backend/.dockerignore create mode 100644 frontend/.dockerignore diff --git a/backend/.dockerignore b/backend/.dockerignore new file mode 100644 index 0000000..51c9cfc --- /dev/null +++ b/backend/.dockerignore @@ -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 diff --git a/frontend/.dockerignore b/frontend/.dockerignore new file mode 100644 index 0000000..95b2fb5 --- /dev/null +++ b/frontend/.dockerignore @@ -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