이미지 빌드 · 멀티스테이지와 경량화 · 퀴즈
퀴즈: 멀티스테이지와 경량화
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
멀티스테이지로 바꿨는데 크기가 거의 안 줄었습니다. 가장 흔한 원인은?
- 스테이지 개수가 부족해서
- 최종 스테이지에서 빌더 디렉터리를 통째로 복사해서
- 캐시가 남아 있어서
- 베이스 이미지가 같아서
`scratch` 기반 이미지에서 HTTPS 호출이 `x509: certificate signed by unknown authority` 로 실패합니다. 원인은?
- 바이너리가 동적 링크됐다
- CA 인증서 번들이 이미지에 없다
- 시간이 안 맞다
- 네트워크가 막혔다
알파인 베이스가 오히려 손해가 되는 대표적 상황은?
- 최종 이미지 크기가 오히려 더 커져 버릴 때
- 이미지 레이어 수가 많을 때
- 컨테이너를 루트로 실행할 때
- musl 용 바이너리 휠이 없어 소스 컴파일로 넘어가 CI 시간이 폭증할 때
`--target` 옵션의 실용적 쓰임새는?
- 최종 이미지를 한 단계 더 작게 만들어 준다
- 여러 스테이지 빌드를 병렬로 돌린다
- 중간 스테이지까지만 빌드해 디버깅하거나 테스트 전용 이미지를 뽑는다
- 빌드 캐시를 비우고 새로 만든다
이미지 최적화의 성과를 무엇으로 검증하는 것이 가장 타당합니까?
- 콜드 스타트 풀 시간과 롤링 업데이트 시 새로 받는 레이어 비율
- 이미지 전체 크기(MB) 숫자
- 이미지의 레이어 개수
- CI 에서 걸린 빌드 시간
`RUN apt-get purge` 로 빌드 도구를 지웠는데 이미지가 2.1MB **늘었습니다**. 왜입니까?
- 삭제 표식과 갱신된 패키지 DB 가 새 레이어에 기록되고, 아래 레이어의 원본은 그대로 남아서
- purge 가 apt 캐시를 그대로 남기기 때문에
- 레이어 압축이 풀린 채로 저장돼서
- 레이어 메타데이터가 그만큼 늘어나서