기본 패턴
text
node_modules
.git
dist
.env
coverage설명
- Docker build는 Dockerfile만 읽는 것이 아니라, 현재 디렉터리의 build context 전체를 daemon 또는 builder로 보냅니다. 그래서 무심코 큰 폴더를 포함하면 빌드가 느려지고 이미지 캐시도 자주 깨집니다.
.dockerignore는 build context에 넣지 않을 파일과 폴더를 지정하는 파일입니다..gitignore와 비슷해 보여도 목적은 다릅니다. Git 추적 제외가 아니라 Docker build 입력 자체를 줄이는 역할입니다.- 특히
node_modules, 빌드 산출물, 테스트 커버리지, 비밀 파일, 대용량 asset을 그대로 context에 보내는 실수는 흔합니다. 이런 파일이 들어가면 build 속도와 보안, 캐시 효율 모두 손해를 봅니다. - 좋은 Dockerfile은
COPY순서만이 아니라 context 자체를 작게 유지하는 데서 시작합니다. 실제로는.dockerignore가 build 성능 최적화의 첫 단계인 경우가 많습니다. - 팀 프로젝트에서는
.dockerignore를 Dockerfile과 한 세트로 관리하는 감각이 중요합니다. 이미지가 느리거나 커질 때 항상 함께 점검해야 하는 파일입니다.
빠른 정리
| 항목 | 역할 |
|---|---|
| build context | build에 전달되는 파일 집합 |
.dockerignore | context에서 제외할 파일 규칙 |
| 잘 빼야 하는 것 | node_modules, .git, .env, 빌드 산출물 |
| 효과 | build 속도, 보안, 캐시 효율 개선 |
주의할 점
.gitignore에 적어 두었다고 Docker build에서도 자동 제외되는 것은 아닙니다. Docker는 .dockerignore를 별도로 읽기 때문에,
민감 파일이나 대용량 폴더는 반드시 여기에서도 관리해야 합니다.
참고 링크
2 sources