[파이썬] 파이썬을 활용한 컨테이너 환경 변수 관리

컨테이너 기반 개발과 배포는 현대 소프트웨어 개발의 핵심 부분입니다. 컨테이너를 사용하면 애플리케이션을 격리된 환경에서 실행할 수 있으며, 환경 변수를 통해 애플리케이션의 설정을 제어할 수 있습니다. 파이썬은 이러한 컨테이너 환경 변수를 관리하기 위한 강력한 도구들을 제공합니다.

이 블로그 포스트에서는 파이썬을 사용하여 컨테이너 환경 변수를 관리하는 방법에 대해 알아보겠습니다.

1. os 모듈을 사용한 환경 변수 가져오기

파이썬의 os 모듈을 사용하면 현재 컨테이너의 환경 변수를 가져올 수 있습니다. 다음은 os 모듈을 사용하여 환경 변수를 가져오는 예시 코드입니다:

import os

# 환경 변수 가져오기
database_host = os.environ.get('DATABASE_HOST')
database_port = os.environ.get('DATABASE_PORT')
database_username = os.environ.get('DATABASE_USERNAME')
database_password = os.environ.get('DATABASE_PASSWORD')

# 가져온 환경 변수 사용하기
print(f"Database Host: {database_host}")
print(f"Database Port: {database_port}")
print(f"Database Username: {database_username}")
print(f"Database Password: {database_password}")

위의 코드는 os.environ.get() 함수를 사용하여 DATABASE_HOST, DATABASE_PORT, DATABASE_USERNAME, DATABASE_PASSWORD 환경 변수를 가져옵니다. 가져온 환경 변수는 이후에 사용될 수 있습니다.

2. python-decouple 라이브러리를 사용한 설정 파일 관리

파이썬에서 환경 변수를 사용하여 설정을 관리하는 것은 유용한 방법입니다. 하지만 환경 변수를 직접 사용하는 것은 관리하기 어려울 수 있습니다. 이런 경우 python-decouple 라이브러리를 사용하여 설정 파일을 관리할 수 있습니다.

python-decouple로 환경 변수를 설정 파일에서 가져오는 방법은 다음과 같습니다:

  1. python-decouple 라이브러리 설치하기: pip install python-decouple
  2. .env 파일 생성하기: 프로젝트 루트 디렉토리에 .env 파일을 생성하고 환경 변수를 설정합니다. 예를 들면 다음과 같습니다:
    # .env 파일 내용
    DATABASE_HOST=localhost
    DATABASE_PORT=5432
    DATABASE_USERNAME=admin
    DATABASE_PASSWORD=secretpassword
    
  3. 파이썬 코드에서 설정 파일 사용하기:
from decouple import config

# 설정 값 가져오기
database_host = config('DATABASE_HOST')
database_port = config('DATABASE_PORT')
database_username = config('DATABASE_USERNAME')
database_password = config('DATABASE_PASSWORD')

# 가져온 설정 값 사용하기
print(f"Database Host: {database_host}")
print(f"Database Port: {database_port}")
print(f"Database Username: {database_username}")
print(f"Database Password: {database_password}")

위의 코드에서 config() 함수를 사용하여 .env 파일에서 설정 값을 가져옵니다. 이 방식을 사용하면 .env 파일을 통해 애플리케이션의 설정을 관리할 수 있습니다.

3. Docker와 함께 사용하기

컨테이너 환경 변수는 주로 Docker와 함께 사용됩니다. Docker를 사용하면 애플리케이션과 필요한 환경 변수를 함께 패키징하여 이식성이 높은 이미지를 생성할 수 있습니다.

Docker에서 환경 변수를 사용하는 방법은 다음과 같습니다:

  1. Dockerfile에 환경 변수 설정하기:
    # Dockerfile 내용
    FROM python:3.9
    ENV DATABASE_HOST=localhost
    ENV DATABASE_PORT=5432
    ENV DATABASE_USERNAME=admin
    ENV DATABASE_PASSWORD=secretpassword
    
  2. 파이썬 코드에서 환경 변수 사용하기: ```python import os

환경 변수 가져오기

database_host = os.environ.get(‘DATABASE_HOST’) database_port = os.environ.get(‘DATABASE_PORT’) database_username = os.environ.get(‘DATABASE_USERNAME’) database_password = os.environ.get(‘DATABASE_PASSWORD’)

가져온 환경 변수 사용하기

print(f”Database Host: {database_host}”) print(f”Database Port: {database_port}”) print(f”Database Username: {database_username}”) print(f”Database Password: {database_password}”) ```

위의 코드에서는 os.environ.get() 함수를 사용하여 환경 변수를 가져오는데, Docker 이미지에서 설정한 환경 변수를 가져올 수 있습니다.

마무리

컨테이너 기반의 환경에서 애플리케이션을 개발 및 배포할 때 환경 변수를 효과적으로 관리하는 것은 매우 중요합니다. 파이썬을 사용하여 환경 변수를 가져오고 설정 파일을 관리하는 방법을 배웠습니다. 또한 Docker와 함께 사용하여 컨테이너 이미지를 생성하는 방법을 알아보았습니다.

이러한 방법들을 사용하여 애플리케이션의 설정을 효율적으로 관리하고 유연성과 이식성을 높일 수 있습니다. 파이썬과 컨테이너를 함께 사용하여 개발 및 배포 프로세스를 개선해보세요!