[파이썬] 파이썬 애플리케이션의 컨테이너 배포와 업데이트

컨테이너 기술은 애플리케이션 배포와 관리에서 큰 효율성과 유연성을 제공합니다. 이번 글에서는 파이썬 애플리케이션을 컨테이너로 배포하고 업데이트하는 방법에 대해 알아보겠습니다.

1. Docker를 사용한 컨테이너 배포

Docker는 컨테이너화된 애플리케이션을 배포하기 위한 인기있는 도구입니다. 다음은 파이썬 애플리케이션을 Docker 컨테이너로 배포하는 간단한 예제입니다.

# app.py
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, World!"

if __name__ == '__main__':
    app.run()

위의 예제는 간단한 Flask 웹 애플리케이션입니다.

  1. 먼저, 파이썬 애플리케이션을 Docker 이미지로 패키징해야 합니다. 이를 위해서는 Dockerfile을 작성해야 합니다.
# Dockerfile
FROM python:3.9

COPY requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt

COPY app.py /app/app.py

WORKDIR /app

CMD ["python", "app.py"]
  1. Dockerfile을 작성한 후에는 도커 이미지를 빌드해야 합니다.
$ docker build -t my-app .
  1. 이미지를 성공적으로 빌드한 후에는 컨테이너를 실행할 수 있습니다.
$ docker run -d -p 5000:5000 my-app
  1. 정상적으로 컨테이너가 실행되면 http://localhost:5000으로 애플리케이션에 접근할 수 있습니다.

2. 컨테이너 업데이트

파이썬 애플리케이션을 컨테이너로 배포한 후에는 언제든지 업데이트할 수 있습니다. 이를 위해서는 약간의 과정이 필요합니다.

  1. 새로운 애플리케이션 코드를 작성하고, 이를 이미지에 반영하기 위해 Dockerfile을 수정합니다.
# Dockerfile
FROM python:3.9

COPY requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt

COPY app.py /app/app.py
COPY new_feature.py /app/new_feature.py

WORKDIR /app

CMD ["python", "new_feature.py"]
  1. Docker 이미지를 다시 빌드합니다.
$ docker build -t my-app .
  1. 업데이트된 컨테이너를 실행하고 기존 컨테이너를 제거합니다.
$ docker stop <CONTAINER_ID>
$ docker rm <CONTAINER_ID>
$ docker run -d -p 5000:5000 my-app
  1. 정상적으로 컨테이너가 실행되면 http://localhost:5000으로 새로운 애플리케이션에 접근할 수 있습니다.

컨테이너 기반의 배포와 업데이트를 통해 파이썬 애플리케이션을 쉽게 관리할 수 있습니다. Docker를 사용하면 인프라스트럭처 전반에 걸쳐 일관된 배포 환경을 유지할 수 있으며, 업데이트 과정도 간단하게 처리할 수 있습니다.