더북(TheBook)

web-ping 이미지의 Dockerfile 스크립트에는 인스트럭션이 일곱 개뿐이다. 그러나 이 짧은 스크립트에도 개선의 여지가 있다. CMD 인스트럭션은 스크립트 마지막에 위치할 필요가 없다. 이 인스트럭션은 FROM 인스트럭션 뒤라면 어디에 배치해도 무방하다. 또한, 수정할 일이 잘 없을 것이므로 초반부에 배치하면 된다. 그리고 ENV 인스트럭션 하나로 여러 개의 환경 변수를 정의할 수 있으므로 세 개의 ENV 인스트럭션을 하나로 합칠 수 있다. 이렇게 최적화한 Dockerfile 스크립트를 예제 3-2에 실었다.

예제 3-2 web-ping 이미지의 Dockerfile 스크립트를 최적화한 결과

FROM diamol/node

CMD ["node", "/web-ping/app.js"]

ENV TARGET="blog.sixeyed.com" \
    METHOD="HEAD" \
    INTERVAL="3000"

WORKDIR /web-ping
COPY app.js .

실습 최적화를 마친 Dockerfile 스크립트도 예제 코드로 제공된다. web-ping-optimized 디렉터리로 이동하여 새로운 스크립트로 이미지를 다시 빌드하라.

cd ../web-ping-optimized
docker image build -t web-ping:v3 .
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.