본문 바로가기

Dev Platform/Docker

[Docker] image를 계층 분리해서 관리 ( Dockerfile )

반응형

안녕하세요.

저는 이거 저거 많이 해보는 개발자라... Docker 이미지를 많이 만들다 보면 용량의 압박이 

그리고 이미지 만들 때 기존 수행했던 작업들은 다시 하고 싶지 않아서...

그래서 좀 체계적으로 이미지를 만들어 볼까 합니다.

이전 포스팅 ( [Ubuntu] 18.04 Docker를 이용해서 QT 빌드 시스템 구축해보기 ) 에서 만든 Dockerfile을 바탕으로 한번 만들어 보았습니다.

 

1. 기존 Dockerfile

FROM ubuntu:18.04

RUN apt-get update

RUN apt-get install -y build-essential perl python git wget libgl-dev

RUN apt-get install -y qt5-default qtcreator

ENTRYPOINT qtcreator

 

2. dev:ubuntu_18.04 Dockerfile

FROM ubuntu:18.04

RUN apt-get update && yes | apt-get upgrade

RUN apt-get install -y build-essential

python git wget libgl-dev은 필요 없어 삭제했습니다.

 

3. dev:ubuntu_18.04_qt5 Dockerfile

FROM dev:ubuntu_18.04

RUN apt-get install -y qt5-default qtcreator

ENTRYPOINT qtcreator

이렇게 해서 각자 빌드 ( dev:ubuntu_18.04 Dockerfile 을 먼저 빌드 )합니다.

dev:ubuntu_18.04_qt5은 위의 Dockerfile에서와 같이 dev:ubuntu_18.04을 기반으로 만들어집니다.

따라서 RUN apt-get update && yes | apt-get upgrade RUN apt-get install -y build-essential 와 같은 작업이 이미 돼있는 상태입니다.

이를 활용하면 다른 개발 이미지를 생성하는데 활용하면 용량뿐만 아니라 이미지 생성 시간도 절약하게 됩니다.

 

빌드 결과 이미지

 

반응형