개발자

React + Nginx 프로젝트 Docker build 시간이 오래 걸리는 이유

2023년 10월 24일조회 545

React 프로젝트를 빌드했을 때와 React + Nginx 기반 프로젝트를 Dockerfile로 build시 두 작업의 시간 차이가 많이 나는 상황입니다. docker 이미지 빌드시 npm run build 커맨드 실행에 거의 모든 시간이 소모됩니다. 그래서 react 빌드 시간을 줄이기 위한 esbuild 적용, webpack 커스터마이징 및 dockerfile 최적화를 위한 dockerfile 멀티 스테이지 적용, 이미지 캐시 레이어 사용을 위한 dockerfile 스크립트 수정도 해봤습니다. 그런데도 일반 build(react 프로젝트 build 약 40초)와 docker 이미지 빌드(약 8분) 시간의 차이가 많이 나는데 차이가 많이 나는 원인을 파악하는 방법이 뭐가 있을까요?? dockerfile 스크립트도 참고로 올려봅니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

좀비님의 프로필 사진

package-lock.json 파일과 node_modules 디렉토리가 도커 볼륨에 보존 되어 있어야(또는 도커 볼륨에 복사) 프로젝트에서 사용중인 패키지를 매번 재설치하지 않습니다. 도커 빌드할때마다 패키지를 다운로드하고 있어 시간이 많이 소모되는 것으로 추측됩니다.

profile picture

익명

작성자

2023년 10월 25일

먼저 답변 감사드리며 추가 질문이 있습니다. 7번째 줄인 패키지를 다운로드 하는 과정에서 캐시가 적용되어도 도커 빌드 시간이 오래 걸리던데 이런 경우는 어떤 경우일까요??

좀비님의 프로필 사진

패키지를 내려 받는데 시간이 걸리는 것인지, webpack에서 번들링 및 트랜스파일 하는데 시간이 걸리는지 도커 작업을 쪼개서 지연되는 작업을 찾아야겠습니다. (node_modules가 존재 한다면, 새로 추가/변경된 패키지만 설치하기 때문에 다운로드 없이 webpack 빌드만 동작해야 하는데, 로그도 확인해보세요.)

profile picture

익명

작성자

2023년 10월 26일

답변 감사합니다! 도커 작업 쪼개서 더 구체적으로 분석해봐야겠네요

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!