먼저 Next.js 프로젝트에 대한 Docker 이미지를 만들어야 합니다.
루트 디렉토리에 Dockerfile을 만들어 도커 이미지를 만드는 코드를 작성해 봅시다.
Dockerfile을 만들기 전에 이미지 빌드에 적용한 것들에 대해서 알아야합니다.
Multi-stage 빌드 방식을 이용해 도커 이미지를 만들 예정입니다. 해당 방식은 이미지를 만드는 과정에서는 필요하지만 최종 컨테이너 이미지에는 필요 없는 환경을 제거하여 이미지를 최적화하는 방식입니다.
이를 위해 stage를 나누어 기반 이미지를 생성합니다.
stage는 다음과 같습니다
base
):
npm install --production
: 프로덕션에서만 필요한 의존성을 설치합니다. (예: react
, next
등)deps
):
npm install
: 개발 의존성까지 포함하여 모든 의존성을 설치합니다. 이 단계는 빌드에 필요한 패키지를 포함하는 것입니다.storybook
, eslint
등 개발 도구와 관련된 패키지들이 설치됩니다.builder
):
npm run build
: Next.js 애플리케이션을 빌드하는 단계입니다.builder
는 소스 파일 전체를 복사하고, 빌드를 통해 정적 자원을 생성합니다.runner
):
builder
에서 빌드된 결과물과 프로덕션 의존성만 복사해 옵니다.