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″]

Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close