Dockerfile은 Docker image 빌드를 위한 명령들이 담긴 텍스트 파일입니다 — base image, 의존성, 복사할 파일, 애플리케이션 실행 방법을 기술합니다. 이는 image 빌드를 재현 가능하고 버전 관리 가능하게 만듭니다.
기본 Dockerfile
# FROM — 그 위에 빌드할 base image
FROM node:20-alpine
# WORKDIR — image 내부의 작업 디렉터리 설정
WORKDIR /app
# 의존성 파일을 먼저 COPY(더 나은 layer 캐싱을 위해)
COPY package*.json ./
# RUN — BUILD 중에 명령 실행(의존성 설치)
RUN npm install
# 나머지 애플리케이션 코드 COPY
COPY . .
# EXPOSE — 앱이 수신 대기하는 포트를 문서화
EXPOSE 3000
# CMD — CONTAINER가 시작될 때 실행할 명령
CMD ["node", "server.js"]
주요 명령
FROM → base image(시작점) — 필수, 보통 맨 앞
WORKDIR → 이후 명령들의 작업 디렉터리 설정
COPY/ADD → 호스트의 파일을 image로 복사
RUN → BUILD 시점에 명령 실행(패키지 설치, 컴파일) → layer 생성
ENV → 환경 변수 설정
EXPOSE → container가 수신 대기하는 포트를 문서화
CMD → container가 시작될 때 실행할 기본 명령(Dockerfile당 하나)
ENTRYPOINT → 실행되는 실행 파일(CMD가 그 기본 인자를 제공)
ARG → 빌드 시점 변수
