요약
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
도구를 이용하여 아래와 같이 테스트 합니다.
'Dev > Docker' 카테고리의 다른 글
Docker-Compose를 활용한 NestJS Dockerized (Mac M1) (0) | 2022.05.22 |
---|---|
Docker-Compose를 활용한 MySQL 8.0.28 구축 (Mac M1) (0) | 2022.05.18 |