라벨이 환경변수인 게시물 표시

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'를 사용합니다. 따라서 컨테이너를 생성시 아래와 같이 작성해야합니다. 이후 정상 동작 되는것을 확인할수 있습니다.