오늘은 NestJS 프로젝트를 Docker를 이용해 배포하는 방법을 배웠다.
먼저, 새로운 NestJS 프로젝트를 생성한다.
nest new nest-docker
프로젝트가 생성되면 실행하여 정상적으로 동작하는지 확인한다.
npm start
Docker 컨테이너를 만들기 위해 Dockerfile을 프로젝트 루트에 작성한다.
Dockerfile
작성FROM node:18
RUN mkdir -p /var/app
WORKDIR /var/app
COPY . .
RUN npm install
RUN npm run build
EXPOSE 3000
CMD [ "node", "dist/main.js" ]
FROM node:18
→ Node.js 18 버전 기반으로 컨테이너 생성 WORKDIR /var/app
→ 작업 디렉토리 설정 COPY . .
→ 프로젝트 전체 파일 복사 RUN npm install
→ 의존성 설치 RUN npm run build
→ 프로젝트 빌드 EXPOSE 3000
→ 3000번 포트 개방 CMD ["node", "dist/main.js"]
→ 컨테이너 실행 시 해당 명령어 실행 .dockerignore
작성불필요한 파일이 컨테이너에 포함되지 않도록 .dockerignore
파일을 설정한다.
.git
*Dockerfile*
node_modules
이제 docker build
명령어를 사용하여 Docker 이미지를 생성한다.
docker build . -t nest-docker
-t nest-docker
→ nest-docker
라는 태그로 이미지를 생성 생성한 이미지를 기반으로 컨테이너를 실행한다.
docker container run -d -p 3000:3000 nest-docker
-d
→ 백그라운드 실행 -p 3000:3000
→ 호스트(내 PC) 3000번 포트와 컨테이너 3000번 포트 연결 브라우저에서 다음 URL을 입력하여 정상적으로 실행되는지 확인한다.
NestJS 프로젝트가 정상적으로 Docker 컨테이너에서 실행된다면 성공!
[링크텍스트]( 참조: https://codegear.tistory.com/108)