Docker로 postgres 와 NestJs로 서버를 띄웠는데 NestJs 부분의 DockerFile 내부에 환경 변수를 따로 선언하지 않아 위와 같이 환경 변수를 잡아오지 못하는 이슈가 발생하였다.
DockerFile 내부에 ENV를 사용하여 아래와 같은 방법으로 환경 변수를 추가할 수 있다.
FROM node:14 RUN mkdir -p /app/src WORKDIR /app COPY ./server ./ RUN npm install ENV DB_HOST=localhost \ DB_PORT=3301 \ DB_USERNAME=postgres \ DB_PASSWORD=test1234 \ DB_DATABASE=test_db EXPOSE 8001 CMD ["npm", "start"]
FROM node:14 RUN mkdir -p /app/src WORKDIR /app COPY ./server ./ RUN npm install ENV DB_HOST=localhost ENV DB_PORT=3301 ENV DB_USERNAME=postgres ENV DB_PASSWORD=test1234 ENV DB_DATABASE=test_db EXPOSE 8001 CMD ["npm", "start"]
NestJs가 정상적으로 실행되는 것을 확인할 수 있다.
Docker 환경 변수 설정
Docker로 postgres 와 NestJs로 서버를 띄웠는데 NestJs 부분의 DockerFile 내부에 환경 변수를 따로 선언하지 않아 위와 같이 환경 변수를 잡아오지 못하는 이슈가 발생하였다.
DockerFile 내부에 ENV를 사용하여 아래와 같은 방법으로 환경 변수를 추가할 수 있다.
1. 한 번의 ENV에 모든 환경 변수를 선언하는 방법
2. 한 번의 ENV에 하나의 환경 변수만 선언하는 방법
NestJs가 정상적으로 실행되는 것을 확인할 수 있다.
'개발 > Docker' 카테고리의 다른 글