기본 패턴
dockerfile
FROM node:22-alpine
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
CMD ["npm", "start"]설명
- Dockerfile은 이미지를 만드는 절차를 선언적으로 적는 텍스트 파일입니다.
FROM은 시작 베이스 이미지를 정하고,WORKDIR은 이후 명령의 기본 작업 디렉터리를 고정합니다.COPY는 필요한 파일을 이미지에 넣고,RUN은 빌드 시점 명령을 실행해 의존성 설치 같은 작업을 수행합니다.CMD는 컨테이너가 기본적으로 실행할 명령을 지정하며,docker run시 다른 명령으로 덮어쓸 수도 있습니다.- 좋은 Dockerfile은 "작게, 반복 가능하게, 캐시가 잘 먹게" 쓰는 것이 핵심입니다.
짧은 예제
dockerfile
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY src ./src
CMD ["python", "-m", "src.main"]빠른 정리
| 지시어 | 역할 |
|---|---|
FROM | 베이스 이미지 선택 |
WORKDIR | 작업 디렉터리 지정 |
COPY | 파일 복사 |
RUN | 빌드 시 명령 실행 |
CMD | 컨테이너 기본 실행 명령 |
주의할 점
Dockerfile은 단순 셸 스크립트가 아닙니다. 빌드 캐시와 레이어 구조에 영향을 주므로, 파일 복사 순서와 의존성 설치 순서까지 함께 설계해야 합니다.
참고 링크
2 sources