본문 바로가기

Dev/Docker

Flask API Server Dockerized

요약

Docker 엔진을 이용하여 Flask API 서버를 간단하게 실행해 봅니다.

 

Hello World API 생성

테스트를 위해 아래와 같이 Hello World API를 생성해 줍니다.

루트 폴더의 app.py 파일 입니다.

from flask import Flask, request

app = Flask(__name__)

@app.route('/hello')
def hello():
    return 'Hello, Flask API Server on Docker Container'

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

 

 

Flask API Dockerfile 정의

FROM Python-slim 이미지를 사용하여 도커 이미지 용량을 확보합니다.

COPY 소스 코드들을 컨테이너의 /app 하위 경로로 복사합니다.

RUN pip 를 업데이트 하고, flask 를 설치합니다.

WORKDIR 는 컨테이너의 작업 시의 루트 폴더를 지정하는 옵션입니다.

CMD 는 RUN 명령어가 이미지를 빌드할 때 실행되는 것과 달리, 이미지로부터 컨테이너를 생성하여 최초로 실행할 때 수행됩니다

FROM python:3.6-slim

COPY . /app

RUN python3 -m pip install --upgrade pip
RUN pip3 install flask

WORKDIR /app

CMD ["python3", "-m", "flask", "run", "--host=0.0.0.0"]

 

Container Image Build 및 Container Image Run

docker build -t flask-api-test:v0.0.1 . 를 통해 Dockerfile를 읽어와 빌드합니다.

이때, Dockerfile 위치와 동일한 상태에서 입력해야 합니다.

docker run -p 0.0.0.0:5000:5000 flask-api-test:v0.0.1 를 통해 컨테이너를 실행합니다.

 

Testing

POSTMAN 도구를 이용하여 아래와 같이 테스트 합니다.