일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- API
- docker
- AWS
- elasticsearch
- 구글
- Es
- unity
- sample
- 영어
- mariadb
- 설정
- logstash
- s3
- error
- nodejs
- Ai
- ChatGPT
- ssh
- MySQL
- 유니티
- Linux
- Windows
- MSSQL
- JavaScript
- Kibana
- 엘라스틱서치
- JS
- Python
- build
- Today
- Total
가끔 보자, 하늘.
Python/Docker 개발 환경에서의 환경 변수 설정 Tip 본문
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에서도 환경변수를 코드 수정없이 어떻게 관리해야 하는지 알아보았습니다.
도움이 되셨기를... :)
'개발 이야기 > 개발 및 서비스' 카테고리의 다른 글
CDK / Secret Manager를 활용한 RDS 인증 저장/사용 방법 (0) | 2022.07.18 |
---|---|
NodeJS의 "ERR_OSSL_EVP_UNSUPPORTED" ERROR 해결 Tip (0) | 2022.05.17 |
ReactJS/Docker 개발 환경에서의 환경 변수 설정 Tip (0) | 2022.05.10 |
VC++ 콘솔창 한글 출력 안될 때 Tip (0) | 2022.04.29 |
Chrome에서 javascript로 윈도우 앱 실행 Tip (0) | 2022.04.28 |