3장. Manifest보다 container 계약을 먼저 만든다
image는 불변 digest, non-root, read-only 가능성, signal 처리, 정상 종료, 명확한 port, stdout 구조화 log, runtime secret 주입을 가져야 한다. latest tag와 shell로 수정한 container를 배포하지 않는다.
FROM gcr.io/distroless/nodejs22-debian12:nonroot
WORKDIR /app
COPY --chown=nonroot:nonroot dist/ ./
CMD ["server.js"]
base image·dependency 취약점과 SBOM을 검사하고 build artifact digest를 release 기록에 남긴다. debug tool이 필요하면 임시 승인된 방법을 사용하며 production image를 도구 상자로 만들지 않는다.