Dockerfile
Docker 이미지가 어떤 단계를 거쳐 빌드돼야 하는지를 담고 있는 텍스트 파일
Docker는 Dockerfile에 나열된 명령문을 차례대로 수행하여 이미지를 생성한다.
형식
INSTRUCTION arguments
# 주석
각 명령문은 명령어(Instruction)으로 시작하며, 여러 개의 인자(Arguments)가 나열될 수 있다.
관례적으로 명령어는 대문자로 작성한다.
명령문
- FROM
FROM <IMAGE> FROM <IMAGE>:<TAG> # 예시 FROM ubuntu FROM python:3.6
Docker 이미지는 base 이미지 위에 새로운 층을 쌓아 새 이미지를 생성한다.
FROM 명령문은 base 이미지를 지정하기 위해 사용하며, Dockerfile 최상단에 위치한다.
일반적으로 base 이미지는 Docker Hub와 같은 레포지터리에 공개된 이미지인 경우가 많다. 또한 대부분의 OS 이미지의 공식 릴리즈는 Docker Hub에 공개되어 있다. - RUN
이미지 빌드 과정에서 필요한 명령어를 실행한다.RUN <COMMAND> RUN ["<COMMAND>", "<PARAMETER>", "<PARAMETER>"] # 예시 RUN apt update
- COPY
호스트 컴퓨터에 있는 디렉터리나 파일을 Docker 이미지의 파일 시스템으로 복사한다. 절대 경로와 상대 경로를 지원한다.COPY <SOURCE> <DEST> # 예시 COPY . /opt/source
- ENTRYPOINT
이미지를 컨테이너로 생성할 때 실행해야 하는 커맨드를 설정할 때 사용한다. ENTRYPOINT로 지정된 명령이 실행 후 종료되면 컨테이너도 종료된다.ENTRYPOINT <COMMAND> ENTRYPOINT ["<COMMAND>", "<PARAMETER>", "<PARAMETER>"] # 예시 ENTRYPOINT FLASK_APP=/opt/source-code/app.py flask run
참고 문서
https://www.daleseo.com/dockerfile/