-
[STUDY08.2] docker dive로 itda도커 분석해보기FISA 2026. 1. 6. 08:50
제가 만든 이미지가 얼마나 쓰레기인지 확인해보려구요
일단 도커빌드하면 좀 오래걸리거든요
FROM python:3.11.1-slim WORKDIR /app COPY . . ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 ENV WATCHFILES_FORCE_POLLING=true COPY ./backend/requirements.txt . RUN pip install --upgrade pip && \ pip install -r requirements.txt COPY ./backend ./backend CMD ["uvicorn", "backend.main:app", "--host", "0.0.0.0", "--port", "8000","--reload"]코드는 이렇게생겼어요
1. git clone https://github.com/uooonth/itda.git
cd itda깃클론해줘요
2. 여기에 도커파일이 있어야해요

3. docker build -t itda . 로 빌드해줘요
그러면?

이렇게 !!! 레이어가 쌓이는걸 볼 수 있어요!!!
이거 vsc에서 그냥 빌드할땐 안보이거든요? 근데 리눅스에서 하니까 바로보이네요 신기
4. 다이브는 미리 깔아 뒀어요

5. 다이브 실행해보면?

6. 분석

일케생겼어요
(1) pip install 레이어가 제일 크다
- 파이썬 이미지 특성상 어쩔수 없는거같아요. 의존성 레이어를 설치해야 하는것이..
(2) COPY dir:098f...가 두번째로크다
- .git이나 테스트코드 캐시 문서 불필요한 파일이 모두 이미지에 들어가요. COPY . . 레이어가 불필요하게 커요
그래서 이 이미지는
멀티스테이지 , .dockerignore, 레이어분리, 캐시활용이 없는 최적화가 안된 파일이라고 볼 수 이써요
그리고

이 레이어가 실제 코드레이어로 볼 수 있어요 forntend있고 src있으니까?
근데 이 레이어가 지금

static이미지? stati소스 위에있어요
이러면 코드변경 일어날 때 static소스도 다 다시 다운하게 되므로 불필요한 그게 일어나겠죠
그리고 requirements도 소스코드 밑에있어서... 소스코드변경이 일어나면 다 다시깔게 되겠죠;;
그래서 copy requirements가 위에 있어야해요!!!!! 이런 샤갈 매우못짠코드가나왔네요
일단공부했으니까 최적화하는건 미래의 나에게 미룰게요 ^^
728x90'FISA' 카테고리의 다른 글
[STUDY10] lombok의 아규먼트어노테이션?? (0) 2026.01.06 [STUDY09] 자바 파일 실행시 일어나는 일 (0) 2026.01.06 [STUDY08.1] docker dive? (0) 2026.01.05 [STUDY07] docker 빌드 최적화 - layer에 집중하여 (0) 2026.01.05 [STUDY06] 패턴실습 (0) 2026.01.05