728x90
상황
프로젝트를 Docker 이미지로 빌드한 다음 배포하기 전에 실행을 해보았는데, 환경변수 문제로 실행되지 않는 것으로 보인다. 이 문제를 해결하다가 시간 부족으로 일단 잠시 덮어두고, 훗날 참고를 위해 기록을 남겨둔다.
목표
nest.js 프로젝트 docker로 배포하기
Dockerfile 생성
# 프로젝트 루트폴더에 파일명 Dockerfile 생성
FROM node:18
# 명령들이 실행될 경로
RUN mkdir -p /var/app
WORKDIR /var/app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm install
RUN npm run build
EXPOSE 3000
CMD [ "node", "dist/main.js" ]
.dockerignore
.git
*Dockerfile*
node_modules
Docker 이미지 생성
docker build . -t nest-docker
Docker 실행
docker container run -d -p 3000:3000 nest-docker
에러 발생
docker 이미지 생성까지는 잘 되었는데, 어플리케이션이 정상적으로 실행되지 않는다. 환경변수가 제대로 주어지지 않아서 문제가 발생한 것으로 보인다.
참고했던 Dockerfile
# 프로젝트 루트폴더에 파일명 Dockerfile 생성
FROM node:18
# 명령들이 실행될 경로
RUN mkdir -p /var/app
WORKDIR /var/app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm install
RUN npm run build
EXPOSE 3000
CMD [ "node", "dist/main.js" ]
# 프로젝트 루트폴더에 파일명 Dockerfile 생성
# 가벼운 alpine 버전 사용
# 다단계 빌드를 위한 development 이미지 이름 명시
FROM node:12.13-alpine AS development
# 명령들이 실행될 경로
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install --only=development
COPY . .
# 앱 폴더 빌드 확인
RUN npm run build
# 추가 production 이미지 생성
FROM node:12.13-alpine as production
# docker build 시 --build-arg 옵션으로 넘길 수 있는 인자 정의
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install --only=production
COPY . .
# 빌드된 폴더 복사
COPY --from=development /usr/src/app/dist ./dist
# 도커 컨테이너가 사용할 포트
EXPOSE 8080
CMD ["node", "dist/main."]
https://velog.io/@hey-chocopie/3.-nestjs-%EB%8F%84%EC%BB%A4%EB%9D%BC%EC%9D%B4%EC%A7%95
728x90
'Research > Nest.js' 카테고리의 다른 글
nestjs_docs_JWT Authentication (0) | 2023.09.22 |
---|---|
nestjs_에러해결_DTO validation 작동이 되지 않는 문제 (0) | 2023.04.26 |
nestjs_error_html formData를 axios로 서버에 전송하기 (0) | 2023.04.17 |
nestjs_RDS Postgres 인스턴스 생성 및 nestjs 모듈 설치 (0) | 2023.04.15 |
nestjs_view 엔진 적용하기(hbs) (0) | 2023.04.13 |
댓글