이전 에서, django demo 프로젝트를 컨테이너에 말아보았습니다. 이번 시간에는 환경 변수를 컨테이너 안에 넣어보도록 하겠습니다.

 

[관련글]

dockerignore 파일이 무엇을 하는 것일까요?

 


 프로젝트 구조는 이전 과 크게 달라진 것이 없습니다. 루트 폴더에 .dockerignore랑 스크립트 파일, Dockerfile, requirements 파일 등이 있네요. 그리고 test_env라는 것이 있는데요.

 

 변수명=값 형식으로 적습니다. 예를 들어, 위 예제는 CHO가 3이고, GA가 5이고, HUI가 10입니다. 이것을 build 해 보겠습니다.

 

 

 sample이라는 이름으로 build 합니다. 그리고 run을 해 보겠습니다. 그런데 어떤 옵션을 더 넣어야 할까요? docker run --help를 입력해 보겠습니다.

 

 

 그러면, 여러 옵션들이 나오는데요. 이 중에 --env-file이라는 것이 있습니다. 이것은 environment variables, 환경 변수를 파일로부터 읽는 옵션입니다.

 

 

 그러면 argument에 --env-file test_env.txt가 들어가면 됩니다. -d는 detach 옵션으로 background에서 실행하는 옵션임을 --help를 보시면 알 수 있습니다. 그런데, 이 글에서는 그렇게 중요하게 다룰 옵션은 아닙니다.

 


 돌고 있는 컨테이너가 3개네요. 이 중 2개는 제 토이 프로젝트와 관련된 컨테이너 들입니다. sample을 눌러 봅시다. 이것도 수정할 내용이 조금 더 있으니, 차차 알아가 보도록 하는 걸로 하겠습니다.

 

 

 어찌 되었던, sample을 누르면, 이런 화면이 뜨게 됩니다. CLI를 눌러 보겠습니다. 그러면 왠 터미널 창이 하나 뜨게 됩니다. 저는 환경 변수들을 확인할 때 env 명령어를 자주 이용하는데요. env 명령어를 입력해서 변수 CHO와 GA와 HUI가 잘 있는지 보겠습니다.

 

 

 env | grep CHO는 env의 결과 중에 CHO가 나오는 줄만 출력합니다. CHO=3만 나왔습니다. 마찬가지로 GA와 HUI에 대해서 확인해 보니까, 5, 10으로 잘 나왔음을 볼 수 있어요.

 

 

 echo $HUI를 쳐 볼까요? 그러면 10이 출력됩니다. 이것을 어디에 써 먹을 수 있을까요?

 

 

 저는 application의 중요 셋팅값을 설정하기 위해서 썼습니다. 해당 파일은 spring boot 프로젝트가 로드될 때 초기 셋팅 값들을 넣어두는 파일인데요. ${POSTGRES_USER}와 같은 것들을 환경 변수에서 가져올 수 있게 하였습니다. 어떻게 제 토이 프로젝트에서 compose 했는지는 포스팅 하면서 계속 써 보도록 하겠습니다.