[Docker] Multi-stage build

2024. 12. 31. 11:10·DevOps/Docker
목차
  1. Multi-stage build
  2. Multi-stage build 예시

Multi-stage build

Dockerfile에서 여러 개의 베이스 이미지를 사용하여 이미지를 빌드하는 방법

  • 최종 이미지의 크기를 줄이고, 빌드 프로세스를 효율적으로 관리하기 위해 사용
  • FROM을 기준으로 여러 스테이지로 나뉘어 이미지를 빌드하고, 마지막 스테이지에서 생성한 파일과 상태를 기반으로 빌드됨
  • 각 스테이지는 독립적으로, 스테이지가 종료되면 해당 스테이지에 생성한 파일은 사라짐
  • COPY --from=<stage name>을 통해 이전 스테이지에서 생성한 파일을 복사할 수 있음

Multi-stage build 예시

# Stage 1: Build
FROM node:18-alpine AS builder
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn install
COPY . .
RUN yarn build
# Stage 2: Production
FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

1단계: Build stage

  • FROM node:18-alpine AS builder: node:18-alpine 이미지를 사용해서 빌드, 단계는 builder로 명시
  • 빌드에 필요한 의존성 설치하고, 전체 소스 코드를 복사 후 빌드

2단계: Production Stage

  • FROM nginx:alpine: nginx 이미지 사용
  • COPY --from=builder: builder 스테이지에서 빌드된 파일들을 복사
  • 포트 열고, nginx 실행

 

 

 

참고:

https://alexandre-vazquez.com/multi-stage-dockerfile/

'DevOps > Docker' 카테고리의 다른 글

[Docker] dockerhub에 이미지 업로드  (1) 2024.12.31
[Docker] 투표 앱 docker compose로 배포해보기  (1) 2024.12.31
[Docker] docker compose  (1) 2024.12.31
[Docker] Volume  (1) 2024.12.31
[Docker] Dockefile  (0) 2024.12.31
  1. Multi-stage build
  2. Multi-stage build 예시
'DevOps/Docker' 카테고리의 다른 글
  • [Docker] dockerhub에 이미지 업로드
  • [Docker] 투표 앱 docker compose로 배포해보기
  • [Docker] docker compose
  • [Docker] Volume
Doodo
Doodo
DoodoDoodo 님의 블로그입니다.
  • Doodo
    Doodo
    Doodo
  • 전체
    오늘
    어제
    • 분류 전체보기 (192)
      • CS (17)
        • Network (11)
        • Database (6)
      • Language (19)
        • Python (11)
        • SQL (6)
        • R (2)
      • Linux (17)
      • DevOps (35)
        • Git (7)
        • Docker (8)
        • Kubernetes (9)
        • GCP (4)
        • AWS (7)
      • Data Engineering (50)
        • 책 리뷰 (14)
        • Airflow (35)
        • Redis (1)
      • DBMS (21)
        • CUBRID (21)
      • ML & DL (2)
      • 코딩테스트 (24)
      • 프로젝트 (7)
        • 서울시 대기현황 데이터 적재 프로젝트 (4)
        • CryptoStream (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Doodo
[Docker] Multi-stage build
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.