Home 도커 이미지 - 경량화
Post
Cancel

도커 이미지 - 경량화

도커 이미지 경량화

  • 필요한 패키지 및 파일만 추가
  • 컨테이너 레이어 수 줄이기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
FROM alpine:3.14
LABEL maintainer="sample name<samplename@naver.com>"
LABEL description="sample desc"

# &&로 레이어를 줄이고
# --nocache로 크기를 줄인다
RUN \
  apk add --nocache bash curl git && \
  git clone https://github.com/course-hero/slacktee /slacktee && \
  apk del --no-cache git
RUN chmod 755 /slacktee/slacktee.sh

WORKDIR /slacktee
ENTRYPOINT ["/bin/bash", "-c", "./slacktee.sh"]

경량 베이스 이미지 선택

  • node:lastest => 905MB
  • node:16-slim => 174MB
  • node:16-alpine => 110MB

멀티 스테이지 빌드 사용

  • 멀티 스테이지 파이프라인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# AS를 사용하여 하나의 블록으로 구현
FROM node:16-alpine AS base
LABEL maintainer="sample name<samplename@naver.com>"
LABEL description="sample desc"

WORKDIR /app

COPY package*.json ./

# 빌드 블록
FROM base AS build
RUN npm install

# 릴리즈 블록
FROM base AS release
COPY --form=build /app/node_modules ./node_modules
COPY . .

EXPOSE 8080
CMD [ "node", "server.js"]

# base에 변경이 없으면 base는 변경 없음
This post is licensed under CC BY 4.0 by the author.