본문 바로가기
IT Tech/Cloud

[docker] Multi-stage build

by _><- 2021. 8. 27.
반응형

개념 : 일반적으로 애플리케이션을 빌드하려면 많은 의존성 패키지 및 라이브러리를 필요로합니다.

그래서 이미지자체의 용량이 커지거나 최종적으로 실행할 때 불피요한 라이브러리들이 있을 수 있습니다.

이럴 때는 멀티 스테이즈를 활용하여 여러개의 FROM 명령어를 사용하여 최종적으로는 반드시 필요한 실행 파일만

최종 이미지 결과물에 포함시켜 이미지의 용량을 줄일 때 유용합니다.

출처: https://hoony-gunputer.tistory.com/entry/docker-build-과정 [후니의 컴퓨터]

 

Docker v17.06.0-ce 이후 버전부터 지원됨

https://progressivecoder.com/docker-multi-stage-build-for-running-react-application-on-nginx-server/

In the build stage, we start off with the node:alpine base image.

Basically, we are using NodeJS to install dependencies.

Lastly, we use npm run build to build the application for production purpose.

At this point, our build stage is over.

Basically, we can now discard the artifacts from build phase and start the run stage.

For the run stage, we use nginx as the base image. Then, we copy the result of npm run build command in the build stage to the nginx server directory.

At this point all the other files and folders that were generated during the build phase is marooned over and dropped from the final image.

Only the build artifacts (such as the index.html and the main.js file) are copied over to the final image.

 

출처 : https://progressivecoder.com/docker-multi-stage-build-for-running-react-application-on-nginx-server/

반응형