[Python] 파이썬 도커 파일 및 이미지 만들기

참조


1. 소개

  • 두 개 이상의 프로젝트가 동시에 개발되는 경우 로컬 환경에서 Python 프로젝트를 개발하는 것은 상당히 어려울 수 있습니다.
  • 프로젝트를 부트 스트랩하는 것은 버전을 관리하고 종속성 및 구성을 설정해야 하므로 시간이 걸릴 수 있습니다.
  • 이전에는 모든 프로젝트 요구 사항을 로컬 환경에 직접 설치 한 다음 코드 작성에 집중했습니다.
  • 그러나 동일한 환경에서 여러 프로젝트를 진행하는 것은 구성 또는 종속성 충돌이 발생할 수 있으므로 문제가 됩니다.
  • 또한 팀원과 프로젝트를 공유 할 때 환경도 조정해야 합니다.
  • 이를 위해 쉽게 공유 할 수있는 방식으로 프로젝트 환경을 정의해야 합니다.

2. Python 서비스 컨테이너화

  • server.py
from flask import Flask
server = Flask(__name__)

@server.route("/")
 def hello():
    return "Hello World!"

if __name__ == "__main__":
   server.run(host='0.0.0.0')
  • requirements.txt
Flask==1.1.1
  • 폴더 구조
    • 소스 코드를 src 하위 폴더에 작성한다.
app
├─── requirements.txt
└─── src
     └─── server.py

3. Dockerfile

# set base image (host OS)
FROM python:3.8

# set the working directory in the container
WORKDIR /code

# copy the dependencies file to the working directory
COPY requirements.txt .

# install dependencies
RUN pip install -r requirements.txt

# copy the content of the local src directory to the working directory
COPY src/ .

# command to run on container start
CMD [ "python", "./server.py" ]

4. 컨테이너 실행

$ docker images
REPOSITORY   TAG      IMAGE ID       CREATED       SIZE
myimage      latest   70a92e92f3b5   2 hours ago   991MB
...

$ docker ps
CONTAINER ID   IMAGE   COMMAND   CREATED   STATUS   PORTS   NAMES

$ docker run -d -p 5000:5000 myimage
befb1477c1c7fc31e8e8bb8459fe05bcbdee2df417ae1d7c1d37f371b6fbf77f
  • 실행 결과 확인
$ curl http://localhost:5000
"Hello World!"
728x90

이 글을 공유하기

댓글

Designed by JB FACTORY