관리 메뉴

가끔 보자, 하늘.

Python/Docker 개발 환경에서의 환경 변수 설정 Tip 본문

개발 이야기/개발 및 서비스

Python/Docker 개발 환경에서의 환경 변수 설정 Tip

가온아 2022. 5. 10. 12:48

React에 이어 Python/Docker 운영 환경에서 어떻게 환경변수를 관리하면 되는지 알아보겠습니다.

이 글에서는 파싱 라이브러리 중 하나인 pydantic의 BaseSettings(환경변수를 읽고 관리하는 모듈)를 사용하여 구현해 보겠습니다.

우리는 개발, 라이브 운영 환경을 운영해야 하며, 개발 환경은 자신의 PC에서 가동되며, 라이브 환경은 DOCKER - ubuntu로 빌드되어 가동되며, 운영 환경에 따라 DB IP와 PORT가 달라진다고 가정하겠습니다.

개발 환경을 위해 아래와 같은 코드를 준비합니다.

from pydantic import BaseSettings

class Settings(BaseSettings):
    DB_IP: str = '192.168.0.10'
    DB_PORT: int = 5005

print("DB IP =", settings.DB_IP)

 

개발 환경에서는 코드에 정의된 기본값을 활용할 수 있습니다.

라이브 환경에서는 시스템 환경변수에 DB_IP와 DB_PORT를 정의해 사용할 수 있습니다.

이전 글에서 사용했던 docker run의 --env-file 옵션을 활용할 수 있으며, 혹은 Dockerfile에 환경변수를 등록해 사용할 수 있습니다. Dockerfile에 환경변수를 아래와 같이 설정할 수 있습니다.

 

.
.
ENV DB_IP=172.31.0.10
ENV DB_PORT=5000
.
.

만약 Dockerfile을 운영환경에 별도 설정하고 싶다면 docker build 시 -f 옵션으로 설정할 수 있습니다. 예를들어 Dockerfile.test라는 파일에 QA Test를 위한 설정을 포함하고 Dockerfile.live라는 파일에 라이브 배포 설정을 한다고 가정해 보겠습니다. 그럼 아래와 같이 docker build를 실행할 수 있습니다.

docker build -f Dockerfile.live -t ...

reactjs에 이어 python에서도 환경변수를 코드 수정없이 어떻게 관리해야 하는지 알아보았습니다.

도움이 되셨기를... :)

반응형