Docker 이미지 1.1GB → 130MB: 네 가지 방식으로 빌드해 단계별로 비교하기

같은 Node.js 앱을 단일 스테이지·dockerignore·멀티스테이지+Alpine·distroless 네 방식으로 빌드해 크기를 비교했습니다. 대부분의 감소가 어느 단계에서 일어나는지, Alpine의 musl 호환성 함정과 -slim 대안, –chown을 COPY에 붙여야 하는 이유, distroless 컨테이너 디버깅 방법까지 정리했습니다.