프로그래밍/docker

docker-compose에 환경 변수 ${} 설정하는 방법

승민아 2024. 5. 26. 15:04

docker-compose.yml를 다음과 같이 작성하고 사용하고 있었다...

 

보면 MYSQL_ROOT_PASSWORD를 작성해야한다.

현재 깃허브에 docker-compose.yml도 올리면서 사용하고싶은데 비밀번호를 노출하고싶지 않다.

 

우연히 다른 코드들을 보았는데 ${}와 같이 따로 값들을 불러들이는 방법이 있다는걸 알았다.

 

도커 환경 변수 사용 방법은 다음과 같다.

 

docker-compose.yml와 같은 위치에 ".env" 파일을 작성한다.

 

".env"에는 Key-Value 형식으로 값들을 작성하자.

 

".env"에서 불러온 값들로 어떤 값들이 채워졌는지는 다음과 같은 명령어로 확인할 수 있다.

docker compose config

 

 

로컬에서 서버를 동작할때랑

서버를 이미지 파일로 만들때

 

application.properties와 docker-compose.yml에서 디비 관련

설정 값들이 달라서 고생을 했었는데

 

이제 이미지를 빌드할때 다음과 같이 application.properties에 datasource의 아이디, 비밀번호가 작성이 되어있어도

 

 

다음과 같이 application.properties로 빌드된 파일을 가지고 이미지를 만들때

 

위의 datasource 아이디, 비밀번호로 덮어 쓰인다는것을 확인했다.

 

이제 로컬에서 서버를 돌려보거나 이미지 파일을 만들때 환경 설정들을 변경하지 않아도 된다~