docker 이미지 사이즈 줄이는 방법

2024. 7. 1. 16:42Container

728x90

  1. 멀티 스테이지 빌드 사용:

    FROM node:14 AS builder
    WORKDIR /app
    COPY package*.json ./
    RUN npm install
    COPY . .
    RUN npm run build
    
    FROM node:14-alpine
    WORKDIR /app
    COPY --from=builder /app/dist ./dist
    CMD ["node", "dist/main.js"]

    이 방법으로 빌드 도구와 중간 파일들을 최종 이미지에서 제외할 수 있습니다.

  2. 작은 베이스 이미지 선택:
    가능한 경우 Alpine 기반 이미지를 사용합니다.

    FROM node:14-alpine
  3. 레이어 수 최소화:
    RUN 명령어를 체이닝하여 레이어 수를 줄입니다.

    RUN apt-get update && apt-get install -y \
        package1 \
        package2 \
        && rm -rf /var/lib/apt/lists/*
  4. 불필요한 파일 제거:

    RUN apt-get clean && rm -rf /var/lib/apt/lists/*
  5. .dockerignore 파일 사용:
    불필요한 파일이 이미지에 포함되지 않도록 합니다.

  6. 패키지 매니저 캐시 삭제:

    RUN apt-get update && apt-get install -y \
        package1 package2 \
        && apt-get clean \
        && rm -rf /var/lib/apt/lists/*
  7. 필요한 파일만 복사:

    COPY package.json package-lock.json ./
    RUN npm install
    COPY . .
  8. 압축 및 최적화 도구 사용:
    예를 들어, 정적 파일 최소화, 이미지 최적화 등을 수행합니다.

'Container' 카테고리의 다른 글

docker 이미지 빌드 시간 줄이는 방법  (0) 2024.07.02