말랑말랑제리스타일

파이썬 Rest Api 서비스 Docker Image 생성 예시 본문

프로그래밍/클라우드

파이썬 Rest Api 서비스 Docker Image 생성 예시

제리제리 2024. 6. 24. 15:04

파이썬으로 Rest API 서비스를 만들어 Docker Image로 만드는 방법입니다.

Flask 설치 및 테스트용 소스 생성

먼저 pip를 이용해 Flask를 설치하고 테스트용 소스를 작성해 줍시다.

pip install flask

먼저 flask 설치용 명령어입니다.

from flask import Flask, jsonify
import time

PORT = 8080

app = Flask(__name__)


@app.route("/")
def root():
    return jsonify({"App Status" : "Running"})

@app.route("/getTime")
def getTime():
    seconds = time.time()
    local_time = time.localtime(seconds)
    return jsonify({"Year" : local_time.tm_year,"Seconds" : seconds, "Local Time" : local_time})


if __name__ == "__main__":
    app.run(debug=True, host="0.0.0.0", port=PORT)

flask를 이용한 파이썬 소스코드입니다.

소스 이름은 app.py라고 해두었습니다.

 

PORT는 원하는 대로 바꿔도 되고 Docker에 올릴 거라 번거로움을 없애기 위해 8800으로 잡았습니다.

이렇게 작성하고 실행해 봅시다.

실행하면 터미널에 "Running on 주소"가 나오죠.

이 주소로 들어가면 작동 확인이 가능합니다.

물론 localhost로 들어가도 확인 가능합니다.

로컬에서 실행 테스트
로컬에서 실행 테스트

Docker Image로 만들기

다음은 Kyma에 올리기 위해 Docker Image 만들기입니다.

설치가 안되어있다면 도커를 설치하고 회원가입을 해줍니다.

requirements.txt라는 파일을 app.py 밑에 추가해 줍니다.

여기에는 사용한 패키지를 기재해줘야 하는데, flask라고만 작성해 줍니다.

FROM python:3.10
RUN mkdir /app
WORKDIR /app
ADD . /app/
RUN pip install -r requirements.txt
CMD ["python", "/app/app.py"]

확장자가 없는 Dockerfile이라는 파일도 하나 만들어줍시다.

상단과 같이 작성해 주시면 됩니다.

Docker에 파이썬 올리기 위한 작성 예
Docker에 파이썬 올리기 위한 작성 예

뭐 이런 형태로 작성이 될 겁니다.

다음으로 Docker 사이트로 들어가 Respository를 하나 생성해 줍니다.

생성됐다면 Docker Desktop을 실행하고 VS Code로 돌아와서 터미널에 아래 명령어를 입력해 줍니다.

docker build -t 도커ID/repository명:0.0.1 -f Dockerfile .

최초 빌드 시 시간이 좀 걸릴 수 있습니다.

docker run -p 8080:8080 도커ID/repository명:0.0.1

명령어로 로컬 Docker로 실행을 시켜봅시다.

실행 후 127.0.0.1:8080으로 접속해 보면 api 상태가 ready라고 출력될 겁니다.

docker push docker 도커ID/repository명:0.0.1

실행을 확인했다면 상단 명령어로 Docker 레포지토리에 푸시해 줍니다.

Comments