5. 도커(Docker)와 함께하는 FastAPI CRUD 구축: FastAPI ENV 파일 관리

data_jeong·2023년 11월 13일
0
post-thumbnail

ENV 파일로 환경 변수 관리

.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에서 환경 변수 사용

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 애플리케이션에서 환경 변수 사용

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 파일은 일반적으로 버전 관리 시스템에서 제외되므로, 중요한 정보가 외부로 유출되는 것을 방지할 수 있습니다.

profile
데이터를 주력으로 하는 잡부입니다!

0개의 댓글