.env
파일을 사용하면 코드 내에 중요한 정보를 직접 포함시키지 않고도 환경 변수를 통해 필요한 정보를 제공할 수 있습니다. 이 방식은 특히 중요한 설정 값이나 비밀번호와 같은 민감한 정보를 관리할 때 유용합니다.
.env
파일 생성프로젝트 루트 디렉토리에 .env
파일을 만들고 필요한 환경 변수를 정의합니다:
makefileCopy code
DB_NAME=your_dbname
DB_USER=your_username
DB_PASSWORD=your_password
DB_HOST=your_host
이 파일에서 DB_NAME
, DB_USER
, DB_PASSWORD
, DB_HOST
는 각각 데이터베이스 이름, 사용자, 비밀번호, 호스트를 나타냅니다.
docker-compose.yml
파일에서 이러한 환경 변수를 사용하려면 다음과 같이 수정합니다:
yamlCopy code
version: '3.8'
services:
fastapi-app:
build: .
ports:
- "80:80"
depends_on:
- postgres
env_file:
- .env
# 환경 변수 사용
postgres:
image: postgres
env_file:
- .env
# 환경 변수 사용
volumes:
- postgres-data:/var/lib/postgresql/data
volumes:
postgres-data:
env_file
지시어를 사용하여 .env
파일을 서비스에 연결합니다.
FastAPI 애플리케이션에서 환경 변수를 사용하려면, os
모듈을 사용하여 환경 변수를 읽어옵니다:
pythonCopy code
import os
# 환경 변수 불러오기
db_name = os.getenv("DB_NAME")
db_user = os.getenv("DB_USER")
db_password = os.getenv("DB_PASSWORD")
db_host = os.getenv("DB_HOST")
db_config = {
"dbname": db_name,
"user": db_user,
"password": db_password,
"host": db_host
}
이 방식을 사용하면 설정 변경 시 .env
파일만 업데이트하면 되며, 코드 수정은 필요하지 않습니다. 또한, .env
파일은 일반적으로 버전 관리 시스템에서 제외되므로, 중요한 정보가 외부로 유출되는 것을 방지할 수 있습니다.