docker run 명령어 실행 시 환경변수 주입이 왜 필요한가
스프링부트 애플리케이션을 개발하다보면 application.yml 파일에 각종 계정 정보, 키값 등 외부에 공개되어서는 안되는 정보들을 기입하게 됩니다. 따라서 위처럼 환경변수로 은닉할 정보를 갈음하곤 합니다. 그렇다면 이 애플리케이션을 Docker Image화 시켜서 구동하게 된다면 환경변수를 어떻게 설정해주어야 할까요?
아래와 같이 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
'Deploy' 카테고리의 다른 글
[Error] Error: connect ECONNREFUSED 127.0.0.1:443 (0) | 2024.02.12 |
---|---|
[Jenkins] Jenkins를 통한 배포 시 application.yml 내 환경변수 처리 (2) | 2023.06.13 |