Dockerfile 생성기
생성된 Dockerfile
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "index.js"]관련 도구
Dockerfile이란?
Dockerfile은 Docker 이미지를 빌드하기 위한 명령어 스크립트입니다. 베이스 이미지 선택, 패키지 설치, 파일 복사, 환경변수 설정 등의 단계를 정의하면 재현 가능한 컨테이너 이미지가 만들어집니다.
주요 명령어
| 명령어 | 설명 | 예시 |
|---|---|---|
| FROM | 베이스 이미지 | FROM node:20-alpine |
| WORKDIR | 작업 디렉토리 | WORKDIR /app |
| COPY | 파일 복사 | COPY package.json . |
| RUN | 명령어 실행 | RUN npm install |
| CMD | 컨테이너 시작 명령 | CMD ["node", "server.js"] |
| EXPOSE | 포트 노출 | EXPOSE 3000 |
| ENV | 환경변수 설정 | ENV NODE_ENV=production |
| ARG | 빌드 시 인자 | ARG VERSION=1.0 |
| ENTRYPOINT | 고정 실행 명령 | ENTRYPOINT ["python"] |
자주 사용하는 Dockerfile 예시
Node.js 앱
FROM node:20-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY . . EXPOSE 3000 CMD ["node", "server.js"]
Python Flask 앱
FROM python:3.12-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . EXPOSE 5000 CMD ["flask", "run", "--host=0.0.0.0"]