멀티스테이지 이미지는 빌드 산출물만 실행 경계로 넘긴다

개발 의존성·운영 의존성·실행 파일을 분리하면 이미지 크기와 공격면, 레이어 캐시를 함께 관리할 수 있다.

01

Builder

package lock으로 npm ci 후 TypeScript를 dist로 컴파일한다.

02

Prod Deps

npm ci --omit=dev로 실행 패키지만 남긴다.

03

Runtime

dist·package.json·prod node_modules만 최소 이미지에 복사한다.

04

Registry

digest 고정과 취약점 스캔을 통과한 이미지를 저장한다.

05

Container

환경 변수·포트·헬스체크로 같은 이미지를 실행한다.

경계소유하는 것운영 확인
Image읽기 전용 실행 템플릿tag·digest·산출물 버전
Registry배포 가능한 이미지권한·스캔·보존
Container실행 인스턴스env·port·health

캐시 핵심: package*.json을 소스보다 먼저 복사해 의존성 레이어를 코드 변경과 분리한다.