[python] python-dotenv를 사용하여 Docker 컨테이너 환경 설정하기

Docker는 애플리케이션을 컨테이너화하여 효율적으로 배포할 수 있는 도구입니다. 이러한 배포 중에는 환경 변수를 설정해야 할 경우가 많은데, python-dotenv 라이브러리를 사용하면 간편하게 환경 변수를 관리할 수 있습니다.

python-dotenv란?

python-dotenv는 .env 파일을 읽어서 환경 변수를 설정해주는 파이썬 라이브러리입니다. .env 파일은 애플리케이션의 설정 값들을 저장하는 파일로, 보통 키-값 형태로 구성됩니다.

설치하기

python-dotenv를 설치하기 위해서는 pip를 사용합니다.

pip install python-dotenv

사용하기

  1. 환경 변수가 필요한 프로젝트 디렉토리에 .env 파일을 생성합니다.

  2. .env 파일에 환경 변수를 설정합니다. 예를 들어, 다음과 같이 설정할 수 있습니다.

    DB_HOST=localhost
    DB_PORT=5432
    DB_USER=username
    DB_PASSWORD=password
    
  3. 파이썬 코드에서 python-dotenv를 사용하여 환경 변수를 로드합니다.

    from dotenv import load_dotenv
    
    load_dotenv()
    
  4. 이제 환경 변수에 접근할 수 있습니다. 예를 들어, DB_HOST 환경 변수에 접근하려면 다음과 같이 사용합니다.

    import os
    
    db_host = os.getenv("DB_HOST")
    

    이렇게 하면 db_host 변수에 “localhost” 값이 할당됩니다.

Docker 컨테이너에서 python-dotenv 사용하기

Docker 컨테이너에서 python-dotenv를 사용하기 위해서는 몇 가지 추가적인 단계가 필요합니다.

  1. Dockerfile에 python-dotenv를 설치합니다.

    FROM python:3.9
    ...
    RUN pip install python-dotenv
    ...
    
  2. Dockerfile에 .env 파일을 복사합니다.

    COPY .env .
    
  3. Docker 컨테이너에서 .env 파일을 사용할 수 있도록 설정합니다.

    ENV DOTENV_PATH=./.env
    
  4. 파이썬 코드에서 .env 파일을 로드합니다.

    dotenv_path = os.getenv("DOTENV_PATH")
    load_dotenv(dotenv_path=dotenv_path)
    

이제 Docker 컨테이너에서 python-dotenv를 사용하여 환경 변수를 설정하고 로드할 수 있습니다.

마무리

python-dotenv를 사용하면 Docker 컨테이너 내에서 간편하게 환경 변수를 설정하고 사용할 수 있습니다. 이를 통해 애플리케이션의 설정 값을 관리하고, 환경에 따라 여러 가지 설정을 쉽게 변경할 수 있습니다. 자세한 내용은 공식 문서를 참조하시기 바랍니다.