개발, 연습/도커

도커 컴포즈 환경의 환경변수 관리

Injel me 2024. 2. 13. 02:16

도커 컴포즈를 이용한 도커 컨테이너 환경을 구축 시
환경변수를 각 서비스에 할당하는 방법은 다음과 같다.

version: '3.0'
services:
    sample:
        environment:
            - HELLO=world

environment 키워드를 통해 각 환경변수를 관리하는 것으로
각 서비스별로 환경변수를 다르게 주입할 수 있다.

환경변수의 내용을 직접 compose 파일에 작성하지 않고 .env 파일을 생성해두고 .env 파일에 작성 된 환경변수를 읽어 오는 방법도 있다.

docker-compose.yml:

version: '3.0'
services:
    sample:
        environment:
            - HELLO=${HELLO}

.env:

HELLO=world

.env 파일 내의 설정 한 변수를 마치 환경변수처럼 읽어, 다시 서비스에 환경변수로 설정한다.

그런데 환경변수가 많으면 각 서비스별로 환경변수를 한 줄 한 줄 적어 관리하기 어려운데, 그 때에는 .env 파일 자체를 특정 서비스의 환경변수로 사용하게 하여 관리가 가능하다.

AS-IS:

version: '3.0'
services:
    sample:
        environment:
            - HELLO=${HELLO}
            - WORLD=${WORLD}

TO-BE:

version: '3.0'
services:
    sample:
        env_file:
            - .env

이렇게 사용 시 .env 파일을 읽어서 특정 서비스의 환경변수로 사용하게 함으로써
환경변수가 추가되더라도 여러 서비스 내에 한 줄 한 줄 추가할 필요가 없게 된다.
서비스가 많은 컴포즈 파일이더라도 .env 파일을 분리하여 각 서비스 별로 관리할 수 있다.

'개발, 연습 > 도커' 카테고리의 다른 글

도커 용량 확인, 빌드 캐시 확인, 삭제  (0) 2024.03.29