DOCKER BUILD CONTEXT

.dockerignore는 이미지에 보낼 빌드 재료를 먼저 걸러낸다

Docker는 현재 디렉터리를 그대로 이미지에 넣는 것이 아니라, 빌드 컨텍스트를 Docker Daemon으로 보낸 뒤 Dockerfile 명령에 따라 레이어를 만든다.

빌드 컨텍스트가 이미지가 되는 순서

project 프로젝트 폴더 소스, 설정, 로그, 의존성, 빌드 산출물이 함께 있을 수 있다.
filter .dockerignore Docker Daemon으로 보낼 파일 목록을 먼저 줄인다.
image Docker Image Layers Dockerfile의 COPY, RUN 결과만 레이어로 남는다.
cache 의존성 레이어가 덜 흔들림 package*.json을 먼저 복사하고 설치하면 소스 변경 때 의존성 캐시를 재사용하기 쉽다.
secret .env는 이미지에 넣지 않음 비밀 값은 docker run -e, Compose, Kubernetes Secret 등 실행 환경에서 주입한다.
artifact dist는 컨테이너 안에서 생성 호스트 산출물을 복사하지 않고 Dockerfile의 빌드 단계가 만든 결과만 최종 이미지로 보낸다.

핵심: .dockerignore는 보안 설정이자 성능 설정이다. 빌드에 필요한 최소 파일만 보내야 이미지가 작고, 캐시가 안정적이며, 운영 환경에 로컬 정보가 섞이지 않는다.