サイトアイコン KOKENSHAの技術ブログ

docker-composeでbottleとFlask両方の開発環境を作る!

Pythonでウェブアプリケーション開発をする際に、必ず候補に上がる3つのフレームワークDjango、Flask、Bottle

Pythonフレームワーク比較!2018版

前に、別の記事でもFlaskとBottleの簡単な始め方をご紹介しました。

PythonのFlaskフレームワークでWebを作る!

Pythonフレームワークの Bottleで180秒ででウェブサービス(ページ)を作りましょう!

前の記事を読んでくださった方は気づいているかもしれませんが、その記事の中に、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イメージを使っています!

 

これは、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″]

モバイルバージョンを終了