Docker 환경 변수 설정

Docker로 postgres 와 NestJs로 서버를 띄웠는데 NestJs 부분의 DockerFile 내부에 환경 변수를 따로 선언하지 않아 위와 같이 환경 변수를 잡아오지 못하는 이슈가 발생하였다.

 

DockerFile 내부에 ENV를 사용하여 아래와 같은 방법으로 환경 변수를 추가할 수 있다.

 

1. 한 번의 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"]

 

2. 한 번의 ENV에 하나의 환경 변수만 선언하는 방법

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가 정상적으로 실행되는 것을 확인할 수 있다.