Dockerfile 작성과 빌드
우리가 직접 개발한 애플리케이션 코드를 도커 이미지로 구워내는(Baking) 과정입니다. Dockerfile이라는 스크립트 파일에 베이스 OS부터 소스 복사, 의존성 설치, 실행 명령까지 차례대로 적어두면 도커가 알아서 이미지를 만들어줍니다.
Dockerfile (Node.js 백엔드 앱)
# 1. Base Image: 가벼운 리눅스 환경인 alpine 버전을 사용합니다.
FROM node:18-alpine
# 2. 컨테이너 내부의 작업 디렉토리를 /app 으로 지정합니다.
WORKDIR /app
# 3. 의존성 파일(package.json)만 먼저 복사합니다. (도커 캐시 효율을 위해)
COPY package.json package-lock.json ./
# 4. 의존성(라이브러리) 패키지를 설치합니다.
RUN npm ci
# 5. 실제 소스 코드를 모두 복사합니다. (이때 .dockerignore에 node_modules 등록 필수!)
COPY . .
# 6. 컨테이너가 사용할 포트를 명시합니다. (문서화 용도)
EXPOSE 3000
# 7. 컨테이너가 켜질 때 최종적으로 실행할 명령어
CMD ["npm", "start"]
# Dockerfile이 있는 현재 디렉토리(.)에서 이미지를 빌드하고 태그(-t)를 붙입니다.
docker build -t minstudio-node-app:1.0 .
# 빌드된 이미지를 확인합니다.
docker images
# 우리가 구운 이미지로 컨테이너를 실행합니다.
docker run -d -p 3000:3000 --name node-server minstudio-node-app:1.0