본문 바로가기
DevOps/Docker

[Docker] : Onbuild, Stopsignal, Healthcheck, Shell

by 오주현 2022. 2. 25.
반응형

Onbuild, Stopsignal, Healthcheck, Shell


Onbuild

빌드된 이미지를 기반으로 다른 이미지가 Dockerfile로 생성될 때 실행할 명령어를 추가한다.

 

FROM ubuntu:14.04
RUN echo "this is onbuild test"
ONBUILD RUN echo "onbuild!" >> /onbuild_file

"onbuild!" >> /onbuild_file을 통해 onbuild!라는 명령어가 최상위 디렉터리의 onbuild_file에 저장되도록 지정했다.

 

Stopsignal

컨테이너가 정지될 때 사용될 시스템의 콜 종류를 지정한다.

디폴트 값은 SIGTERM으로 설정되어 있지만 선택도 할 수 있다.

 

FROM buntu:14.04
STOPSIGNAL SIGKILL

위 Dockerfile을 빌드하고 해당 이미지로 컨테이너를 생성하면 컨테이너 설정에 StopSignal이 SIGKILL로 되어 있는 것을 확인할 수 있다.

 

Healthcheck

이미지로부터 생성된 컨테이너에서 동작하는 애플리케이션 상태를 체크하도록 설정한다. 컨테이너 내부에서 동작 중인 애플리케이션의 프로세스가 종료되지는 않았으나 동작하고 있지 않은 상태를 방지하기 위해 사용될 수 있다.

 

FROM nginx
RUN apt-get update -y && apt-get install curl -y
HEALTHCHECK --interval=1m --timeout=3s --retries=3 CMD curl -f <http://localhost> || exit 1

Healthcheck에서 사용되는 명령어가 curl이라 컨테이너에 먼저 curl을 설치해야 한다. —interval은 컨테이너 상태 체크하는 주기이다. —timeout에 설정한 시간을 초과하면 상태 체크에 실패한 것으로 간주하고 —retries 횟 수만큼 반복한다.

 

Sheel

shell뒤에 사용하고자 하는 셸을 명시해 따로 지정해 줄 수 있다.

FROM node
RUN echo hello, node!
SHELL ["/usr/local/bin/node"]
RUN -v

📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다.

반응형

댓글