[파이썬] 도커 컨테이너와 호스트 간 환경 변수 공유

도커 컨테이너는 가볍고 격리된 환경에서 애플리케이션을 실행하기 위한 훌륭한 도구입니다. 하지만 때로는 애플리케이션에 필요한 환경 변수를 호스트와 공유해야 할 수도 있습니다. 이럴 때 파이썬의 os.environ을 사용하여 도커 컨테이너와 호스트 간의 환경 변수를 공유할 수 있습니다.

도커 컨테이너에서 환경 변수 설정하기

먼저, 도커 컨테이너에서 사용할 환경 변수를 설정해야합니다. 도커 파일의 ENV 명령어를 사용하여 환경 변수를 설정할 수 있습니다. 예를 들어, 다음과 같이 APP_NAME 환경 변수를 설정하는 도커 파일을 작성해보겠습니다.

FROM python:3.9

ENV APP_NAME=myapp

WORKDIR /app

COPY . .

CMD ["python", "app.py"]

위의 도커 파일에서 ENV 명령어를 사용하여 APP_NAME 환경 변수를 설정하였습니다. 이제 해당 환경 변수값을 파이썬 애플리케이션에서 사용할 수 있습니다.

파이썬 애플리케이션에서 환경 변수 사용하기

파이썬 애플리케이션에서 환경 변수를 사용하기 위해 os 모듈을 사용할 수 있습니다. os.environ은 현재 프로세스의 환경 변수를 담고 있는 딕셔너리입니다. 이를 통해 도커 컨테이너와 호스트 간의 환경 변수를 공유할 수 있습니다.

아래는 APP_NAME 환경 변수를 출력하는 파이썬 애플리케이션의 예제 코드입니다.

import os

app_name = os.environ.get('APP_NAME')
print(f"애플리케이션 이름: {app_name}")

위의 코드에서 os.environ.get('APP_NAME')을 통해 APP_NAME 환경 변수 값을 가져옵니다. 이후 print 함수를 사용하여 해당 값을 출력합니다.

도커 컨테이너에서 환경 변수 공유하기

이제 도커 컨테이너를 실행하여 환경 변수를 공유해보겠습니다. 아래의 명령어를 사용하여 도커 컨테이너를 빌드하고 실행할 수 있습니다.

$ docker build -t myapp .
$ docker run -e APP_NAME=myapp myapp

위의 명령어에서 -e 옵션을 사용하여 호스트의 환경 변수인 APP_NAME을 도커 컨테이너로 전달합니다. 이를 통해 도커 컨테이너 내에서 애플리케이션에 필요한 환경 변수를 공유할 수 있습니다.

결론

도커 컨테이너와 호스트 간 환경 변수 공유는 파이썬 애플리케이션을 개발하고 배포하는 데 매우 유용합니다. os.environ을 사용하여 도커 컨테이너와 호스트 간의 환경 변수를 공유하면, 애플리케이션의 환경 설정을 더욱 유연하게 관리할 수 있습니다. 이를 통해 애플리케이션을 더욱 효율적으로 관리하고 확장할 수 있습니다.