본문 바로가기

Learning/Docker

dockerfile

Appendix

Dockerfile Instruction

Instruction설명

FROM 도커 이미지의 바탕이 될 베이스 이미지를 지정한다. 이 이미지는 Docker hub라는 레지스트리에 공개된 것이어야 한다.
RUN 이미지를 실행할 때 컨테이너 안에서 실행할 명령어를 정의한다.
COPY 호스트의 파일 또는 디렉토리를 도커 컨테이너 안으로 복사한다.
CMD 도커를 실행할 때 컨테이너 안에서 실행할 명령을 정의한다. RUN과 다르게 RUN은 이미지를 빌드할 때 실행되고, CMD는 컨테이너를 실행하면 한 번만 실행된다.
ADD COPY + 압축 파일 해제, URL로부터 컨테이너 파일 및 디렉토리 추가
ARG docker image build 실행할 때 사용하는 변수
ENTRYPOINT 컨테이너를 실행 가능 파일로 사용할 때 정의하는 명령
ENV 컨테이너 안에서 사용하는 환경 변수
EXPOSE 컨테이너가 노출하는 포르 설정
HEALTHCHECK 명령을 실행한 다음 결과를 헬스 체크에 사용한다
LABEL 이미지에 추가되는 메타 데이터
ONBUILD 컨테이너 안에서 실행되는 명령을 정의함. 이미지에서는 실행되지 않음
STOPSIGNAL 컨테이너에 전달되면 컨테이너를 종료
USER 컨테이너 사용자. USER Instruction 이후에 나오는 RUN Instruction도 해당 사용자 권한으로 실행된다.
VOLUME 호스트나 다른 컨테이너에서 볼륨을 마운트
WORKDIR 컨테이너의 작업 디렉토리

 

FROM node:13.12.0-alpine3.11 as build

FROM node:12-alpine

 

Alpine 이란? 알파인 리눅스는 보안, 단순성 및 자원 효율성을 높이는 고급 사용자를 위해 설계된 범용 리눅스 배포판으로 musl libc와 busybox를 기반으로 하기에 GNU/Linux 배포판 보다 작고 가벼우며 yum이나 apt 같은 패키지 관리자가 아닌 apk라는 자체 패키지 관리자를 가지며 보안에 염두해두고 설계되었기에 모든 바이너리는 독립적인 실행 파일(PIE)로 컴파일 됩니다.