Node.js 도커라이징

들어가기 앞서

아래의 참조 링크의 내용에 대해 정리한 글 입니다.

Dockerfile

FROM node:12

# 앱 디렉터리 생성
WORKDIR /usr/src/app

# 앱 의존성 설치
# 가능한 경우(npm@5+) package.json과 package-lock.json을 모두 복사하기 위해
# 와일드카드를 사용
COPY package*.json ./

RUN npm install
# 프로덕션을 위한 코드를 빌드하는 경우
# RUN npm ci --only=production

# 앱 소스 추가
COPY . .

EXPOSE 8080
CMD [ "node", "server.js" ]

.dockerignore

node_modules
npm-debug.log

이미지 빌드

-t 이미지에 태그 추가

docker build . -t <your username>/node-web-app

이미지 실행

-d 이미지를 실행하면 분리 모드로 컨테이너를 실행해서 백그라운드에서 컨테이너가 돌아감

-p 공개 포트를 컨테이너 내의 비공개 포트로 리다이렉트

공개포트: 49160

컨테이너 포트: 8080

docker run -p 49160:8080 -d <your username>/node-web-app

Reference

https://nodejs.org/ko/docs/guides/nodejs-docker-webapp/