Tags
- 오사카
- 17-55
- fdr-x3000
- 대만
- k-디지털트레이닝
- 도쿄
- 맛집
- 우리fisa
- 카페
- 수요미식회
- 우리fis아카데미
- 우리에프아이에스
- 650d
- 시청
- 대만여행
- 해리포터
- 제주도
- 전주
- SQL
- CS231n
- 건담
- 축복이
- 군산
- ai_엔지니어링
- 여행
- Python
- 사진
- 전시
- 글로벌소프트웨어캠퍼스
- 축복렌즈
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Today
- Total
Recent Posts
300x250
브렌쏭의 Veritas_Garage
[Docker] Multi Stage Build 본문
Multi Stage Docker Build
- Dockerfile을 여러개로 나누어서 빌드하는 방법
- 빌드를 여러 단계로 나누어서 진행하면, 이미지의 크기를 줄일 수 있음
- ->빌드 시간이 줄어듦
# 1st stage
FROM python:3.8-slim as builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --upgrade pip && \
pip install --no-cache-dir -r requirements.txt
# 2nd stage
FROM python:3.8-slim
WORKDIR /app
COPY --from=builder /app /app
COPY . .
CMD ["python", "app.py"]
- 1st stage
- python:3.8-slim 이미지를 사용
- requirements.txt를 복사하고, 패키지 설치
- /app 디렉토리에 패키지 설치
- builder라는 이름으로 이미지 생성
- 2nd stage
- python:3.8-slim 이미지를 사용
- /app 디렉토리에 builder 이미지의 /app 디렉토리를 복사
- 현재 디렉토리의 모든 파일을 복사
- app.py 실행
docker build -t multi-stage .
docker run -it --rm multi-stage
docker images
로 이미지 확인- 1st stage 이미지는 없음
- 2nd stage 이미지만 존재
원리
- 1st stage에서 필요한 패키지를 설치하고, 2nd stage에서 필요한 파일만 복사
- 1st stage에서 생성된 이미지는 2nd stage에서만 사용되기 때문에, 1st stage 이미지는 삭제됨
- 2nd stage에서 생성된 이미지만 사용하면 됨
도커 컨테이너 생성시 고려할 점
1) 1 컨테이너 당 1 프로세스
2) 변경 불가능한 인프라( Immutable Infrastructure
)원칙 준수
- 관리 - 버전 태그 사용
- 검증
- 빌드와 배포
3) 경량 도커 이미지로 생성
4) 실행 계정은 root 이외의 사용자로 지정
'[Project_하다] > [Project_공부]' 카테고리의 다른 글
[Linux_Shell] 존재 여부만 알아두면 나중에 쓸모있을 정보 (0) | 2024.08.08 |
---|---|
[Linux] 대충 잊어먹기 쉬운 것들 (0) | 2024.08.07 |
[Docker-Compose] Advanced Options (0) | 2024.08.07 |
[Docker] Container (0) | 2024.08.01 |
[SQLD] 성능 데이터 모델링 (0) | 2024.07.30 |
[우리FISA] Delimiter, Trigger, Partition (0) | 2024.07.30 |
[SQLD] DATA MODELING (0) | 2024.07.29 |
Comments