나의 잡다한 노트 및 메모

멀티 스테이지 빌드에서 --target 옵션 본문

DevOps/docker

멀티 스테이지 빌드에서 --target 옵션

peanutwalnut 2025. 4. 2. 13:37

멀티 스테이지 빌드에서는 --target 옵션을 사용하여 원하는 특정 스테이지만 빌드할 수 있습니다.

 

# 빌드 스테이지
FROM node:14 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

# 실행 스테이지
FROM nginx:alpine AS runtime
COPY --from=builder /app/build /usr/share/nginx/html

이런 도커파일이 있다고 하고 stage가 정의돼있을때,

builder와 runtime 두 개의 스테이지가 있다. 만약 빌드 시점에 builder 스테이지만 실행하고 싶다면 

docker build --target builder -t myapp-builder . 이 명령어와 같이 --target 옵션을 사용할 수 있다.

 

이렇게 하면 builder 스테이지만 빌드되고, 그 결과를 이미지로 생성하게 됩니다. 반대로 runtime 스테이지만 빌드하고 싶다면 해당 스테이지 이름을 지정하면 됩니다.