[Python] 파이썬 도커 파일 및 이미지 만들기
- 파이썬(Python)
- 2022. 4. 5. 22:25
참조
- https://www.docker.com/blog/containerized-python-development-part-1/
- https://www.docker.com/blog/containerized-python-development-part-2/
- https://www.docker.com/blog/containerized-python-development-part-3/
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
'파이썬(Python)' 카테고리의 다른 글
[Python] Python gRPC RPC 패턴 (0) | 2023.02.22 |
---|---|
[Python] 파이썬 - 공백 구분하여 입력받기 (0) | 2023.02.22 |
[python] 파이썬 단위테스트 (0) | 2022.04.05 |
[Python] 파이썬 절대 경로와 상대경로 import (0) | 2022.04.05 |
[Python] 리스트 컴프리헨션 (0) | 2022.04.03 |
이 글을 공유하기