docker 도커에 환경변수(environment file)파일을 외부에 적용하기
도커를 이용하여 컨체이너를 만들다보면 환경변수 파일을 어떻게 적용해야할지 난감한 경우가 있습니다. 단순한 방법으로 환경변수 파일까지 갖이 이미지로 만든 다음에 컨테이너로 만드는 방법이 있습니다. 이 방법은 다른 환경의 서버에서 적용할려면 각각의 서버에 이미지를 다 만들어야 하는 불편함이 있습니다.
관련 gitHub 링크 : https://github.com/Alex-Choi0/docker_nestjs_env.git
위의 링크에서 코드를 클론(branch : master)받으시고 아래 사진과 같이 이미지를 만듭니다.
필요한 의존성 이미지를 받고 Dockerfile을 기준으로 커스텀 이미지를 생성하게 됩니다. 커스텀 이미지의 태그는 'nestjs:env'입니다.
도커 이미지를 attach 모드로 컨테이너를 생성하면 위와 같은 에러가 나오는 것을 알수 있다. 해당 에러는 환경변수 'DATABASE_HOST'가 설정되지 않았다는 뜻이다. '.dockerignore'에서 확인하면 해당 env파일은 이미지에 들어가지 않았다. 따라서 컨테이너를 생성할때 env 파일을 지정해 줘야 한다.
위 사진과 같이 '.env'파일이 적용된 것을 확인할수 있습니다. 정상적으로 적용되어 NestJS 서버가 동작하는 것을 알수 있습니다. 하지만 개발용과 배포용 환경변수파일이 따로 있다면 어떻게 해야 할까요?
관련 gitHub 링크 : https://github.com/Alex-Choi0/docker_nestjs_env.git
위 링크에서 custom_env branch를 클론
위 링크에서 custom_env branch는 '.env'가 아닌 '.development.env'를 사용합니다. 따라서 컨테이너를 생성시 아래와 같이 작성해야합니다.
이후 정상 동작 되는것을 확인할수 있습니다.
댓글
댓글 쓰기