싱글 스테이지
멀티 스테이지
- COPY --from=build
: form이 두개 -> 도커가 두개의 컨테이너를 동시에 생성하고, 첫번째 컨테이너에서 만들어진 파일을 두번째 컨테이너로 복사: maven에서 만들어낸 jar 파일을 jdk 컨테이너에서 복사해와서 사용하게됨
- 첫 번째 단계 (빌더 스테이지)
- node:18 이미지를 사용하여 Vue 프로젝트를 빌드
- /app/dist 폴더에 Vue 정적 파일(index.html, .js, .css)이 생성됨
- 이 단계에서 만든 컨테이너는 임시적으로 존재
- 두 번째 단계 (최종 실행 환경)
- nginx:latest 이미지를 기반으로 함
- COPY --from=builder /app/dist /usr/share/nginx/html
- 첫 번째 단계에서 만든 /app/dist 폴더만 가져오고, node:18 컨테이너는 최종 이미지에 포함되지 않음
- nginx가 최종 이미지로 사용됨
* 결론적으로 1단계는 실행 과정에서만 존재하고, 2단계가 빌드되면 삭제됨