오늘은 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)