docker-composeでbottleとFlask両方の開発環境を作る!
Pythonでウェブアプリケーション開発をする際に、必ず候補に上がる3つのフレームワークDjango、Flask、Bottle
前に、別の記事でもFlaskとBottleの簡単な始め方をご紹介しました。
前の記事を読んでくださった方は気づいているかもしれませんが、その記事の中に、Pythonを実行する環境のことが実は触れていませんでした。
今日の記事では、docker-composeを使って、それらの環境を簡単に構築する方法をご紹介します。
その上、両方手軽にすぐ始められ、試せるのです。
目次
構成
今回の構成はこんな感じです。
python3-docker
|__app
|__b.py <- bottleのファイル
|__f.py <–flaskのファイル
docker-compose-bottle.yml
docker-compose-flask.yml
Dockerfile
必要なファイルはこれだけです。
Dockerfile
FROM frolvlad/alpine-python3 RUN mkdir -p /usr/src/app ADD ./app /usr/src/app RUN pip install bottle RUN pip install requests RUN pip install Flask WORKDIR /usr/src/app EXPOSE 5000
このDockerfileでは、最軽量のPython3イメージを使っています!
#python のいい #Docker イメージを見つけました!
これは、もう使わない手がないです!https://t.co/4EsdQQvk1R— 川島@ソフトウェア、Web、アプリ、IoT作るのが大好き (@kokensha_tech) 2018年10月16日
これは、alpineをベースにしていて、centosやubuntuをベースにしているコンテナのイメージより断然軽量です。
私は、この記事を書く前は、centosをベースにした Python3のコンテナイメージを使っていましたが、imageをpullする時は結構時間がかかります。こちらの方は軽量でおすすめです、しかもpip installもちゃんと使えます!
docker-compose-bottle.yml
version: '2' services: server: build: . ports: - "5000:5000" volumes: - ./app:/usr/src/app command: "python3 b.py"
とてもシンプルなdocker-compose ファイルですね
最後、python3 b.pyを実行して、bottleのウェブサーバーを立ち上げます。
docker-compose-flask.yml
version: '2' services: server: build: . ports: - "5000:5000" volumes: - ./app:/usr/src/app command: "python3 f.py"
上とほぼ同様で、最後コマンドのところだけ、f.pyを起動して、flaskのウェブサーバーを立ち上げます。
b.py
# -*- coding: utf-8 -*- import bottle app = bottle.app() # @app.route('/') def index(): return "Hello, World! This is bottle" if __name__ == '__main__': app.run(debug=False, host='0.0.0.0', port=5000)
bottleのサーバーを作って、立ち上げるファイルです。
ここの留意点は、host=’0.0.0.0’に指定すること、あとは、ポート5000番を解放することです。
f.py
# -*- coding: utf-8 -*- import flask app = flask.Flask(__name__) # @app.route('/') def index(): return "Hello, World! This is Flask" if __name__ == '__main__': app.run(debug=False, host='0.0.0.0', port=5000)
flaskのサーバーを作って、立ち上げるファイルです。
ご覧の通り、見ている感じですと、両方とても似ています。ルートの設定方法と、サーバーの立ち上げる方法も同じです。
起動
bottleの方を起動したい場合は下記の命令を実行します。
docker-compose -f docker-compose-bottle.yml up
Flaskの方を起動したい場合は下記の命令を実行します。
docker-compose -f docker-compose-flask.yml up
とても分かりやすいでしょう!笑
まとめ
これをベースにして、bottleとFlaskの基本的な使い方を試して覚えていけば
さらに、機能を拡張していけば、そのまま簡単なウェブアプリケーションを作っていけますね。
私もこれから、これをベースにして、ちょっと簡単なウェブアプリケーションを作っていく予定です。
面白い展開があったら、また共有します!笑
[amazonjs asin=”4822292274″ locale=”JP” title=”独学プログラマー Python言語の基本から仕事のやり方まで”]
[amazonjs asin=”B07B2LFGH2″ locale=”JP” title=”PythonでWebサービスを作る – Python3 + Flaskで作るWebアプリケーション開発入門 – その1”]
[amazonjs asin=”B01MQU38Y0″ locale=”JP” title=”1日で理解するbottleの使い方 bottle超基礎入門: bottle v0.13″]