개발 등/DOCKER

Dockerfile 로 빌드할 때 주의 사항

darkhorizon 2023. 3. 7. 11:37
728x90
반응형

RUN 으로 실행하면 해당 레이어가 이미지에 포함되므로 의도치 않은 결과를 가져올 수 있다

# vi Dockerfile

FROM ubuntu
RUN mkdir /test
RUN fallocate -l 100mb /test/dummy
RUN rm /test/dummy
  • 빌드해보면 아래의 결과를 볼 수 있다.
    • 원래 ubuntu:77MB
    • 빌드된 이미지: 200MB
  • 이유는 마지막 RUN rm /test/dummy하기 전 RUN fallocate -l 100mb /test/dummy로 생성된 레이어가 이미 이미지에 포함이 되었기 때문이다.
  • 이를 해결하기 위해서는 레이어를 따로 생성하지 않고 최종 명령어가 반영된 최종 레이어만 이미지에 포함하면 된다. 그러기 위해서는 RUN 명령어에 && 연산자를 사용해서 하나의 명령어로 처리하면 된다.
...
RUN fallocate -l 100mb /test/dummy && \
rm /test/dummy
...
728x90