docker-composeでflaskを手軽に試す為の小さなテンプレート
概要
小規模なAPIを作りたいと思い、調べてみるとpythonのflaskがシンプルで良さそうでした。
もちろんサーバーも小規模で良いのですがやはりdockerを使って既存サーバーに同居させる方針が良いと思い書きました。
単体で済むのでdocker-composeにする必要は無いレベルですが、起動時のオプションを気にする必要が無かったり拡張性も考慮してcompose化しております。
参考
flaskのサンプルコードを参考にさせて頂きました
docker-compose一式
必要なプログラムもdocker-compose.ymlも下記githubに置いてあります。
使い方もREADME.mdを合わせてごらんください。
個別ファイル
最新はgithubですが、個別に見たい場合は下記をどうぞ。
Dockerfile
FROM python:3.7-alpine3.7 ARG project_dir=/app/ WORKDIR $project_dir RUN pip install flask CMD ["python", "main.py"]
main.py
from flask import Flask, jsonify, request import json app = Flask(__name__) @app.route("/", methods=['GET']) def hello(): return "route get. Hello!" @app.route('/reply', methods=['POST']) def reply(): data = json.loads(request.data) answer = "route post. keyword is %s!\n" % data["keyword"] result = { "Content-Type": "application/json", "Answer":{"Text": answer} } # return answer return jsonify(result) if __name__ == "__main__": app.run(host='0.0.0.0',port=5001,debug=True)
docker-compose.yml
version: '3.3' services: webapi: build: ./flask ports: - "5001:5001" volumes: - ./app:/app restart: always