Deploy

[Docker] Docker 컨테이너 실행(run) 시 환경변수 (여러개) 주입하기

Dev_Green 2024. 1. 31. 16:15

docker run 명령어 실행 시 환경변수 주입이 왜 필요한가

application.yml

스프링부트 애플리케이션을 개발하다보면 application.yml 파일에 각종 계정 정보, 키값 등 외부에 공개되어서는 안되는 정보들을 기입하게 됩니다. 따라서 위처럼 환경변수로 은닉할 정보를 갈음하곤 합니다. 그렇다면 이 애플리케이션을 Docker Image화 시켜서 구동하게 된다면 환경변수를 어떻게 설정해주어야 할까요?

 

아래와 같이 Dockerfile에 환경변수들을 기입해 줄수도 있지만 이 방식은 이 Dockerfile을 공개 저장소에 업로드할 수 없다는 문제점이 있습니다. 

Dockerfile

이에 대한 대안으로 Docker Container 실행하는 시점에 환경변수를 주입하는 방안이 있습니다.

환경변수를 주입하는 옵션

-e 혹은 --env 옵션은 컨테이너 내에서 사용할 환경 변수를 설정하는 옵션입니다. 

-e KEY=VALUE 와 같은 양식에 따라 사용하며, 여러 개의 변수를 설정하고자 할 때는 아래 코드와 같이 -e 키워드를 거듭사용하는 식으로 사용할 수 있습니다.

docker run -e DB_URL=tempurl -e DB_USERNAME=S10P13B110 -e DB_PASSWORD=I6mvLG7BiH -d -p 8080:80 repo/projectname