Flaskの環境をPIPとDockerの二つの方法で構築する方法

概要

Python ベースの Web フレームワークである Flask の様々な環境構築方法について解説します。

本記事では、以下2通りの方法で環境構築をする方法を紹介します。


  1. PIPで環境構築する方法
  2. Dockerを使用して、環境構築する方法

ここでは、以下バージョンを使用した、Flaskの環境を構築する方法を説明します。

Flask v2.3.0
Python v3.11.4

また、今回作成するコードは全て、以下に掲載しています。 https://github.com/wiblok/flask

※ FlaskはPythonで動作します。Pythonがインストールされていない場合は、公式ウェブサイトからダウンロードしてインストールしてください。
Python

PIPを使った環境構築方法

この方法では、Flask のコアモジュールを import して使用します。 以下の手順に従って実行してください。

Flask単体で環境を構築するには、以下の前提条件を満たす必要があります

  • Python 3.6以上がインストールされていること
  • pipがインストールされていること

プロジェクトディレクトリの作成

まず、Flaskプロジェクトを作成するために新しいディレクトリを作成します。コマンドラインで以下のコマンドを実行してください

mkdir flask-pip-project

プロジェクトディレクトリへの移動

プロジェクトディレクトリに移動します。以下のコマンドを実行してください:

cd flask-pip-project

移動後、プロジェクトのルートディレクトリに移動します。

Flaskのインストール

Flaskをインストールします。以下のコマンドを実行してください:

pip install flask

これにより、Flaskがプロジェクトに追加されます。

アプリケーションの作成

Flaskアプリケーションを作成します。プロジェクトディレクトリ内に新しいファイル(例: app.py)を作成し、以下のコードを追加してください:

app.py

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, Flask!"

上記の例では、Flaskアプリケーションの基本的な構造を示しています。@app.route("/")デコレーターを使用してルートパスに対するハンドラーを定義し、レスポンスとして"Hello, Flask!"を返します。

サーバーの起動

最後に、Flaskサーバーを起動します。以下のコマンドを実行してください:

export FLASK_APP=app.py
flask run --reload

サーバーが正常に起動すると、コンソールに「Running on http://127.0.0.1:5000/」(デフォルトのホストとポート)と表示されます。ブラウザでhttp://localhost:5000にアクセスして、Flaskアプリケーションが正常に動作していることを確認してください。

テスト

curl http://localhost:5000/

Dockerを使った環境構築方法

まずはじめに、Dockerをインストールしてください。公式のDockerウェブサイトから、対応するオペレーティングシステムに合わせたDockerのインストーラーをダウンロードし、インストールを行ってください。

プロジェクトディレクトリの作成

まず、Flaskプロジェクトを作成するために新しいディレクトリを作成します。コマンドラインで以下のコマンドを実行してください:

mkdir flask-docker-project

プロジェクトディレクトリへの移動

プロジェクトディレクトリに移動します。以下のコマンドを実行

してください:

cd flask-docker-project

移動後、プロジェクトのルートディレクトリに移動します。

アプリケーションの作成

Flaskアプリケーションを作成します。プロジェクトディレクトリ内に新しいファイル(例: app.py)を作成し、以下のコードを追加してください:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, Flask!'

Dockerfileの作成

FlaskアプリケーションをDockerイメージとしてビルドするために、プロジェクトフォルダ内にDockerfileという名前のファイルを作成し、以下の内容を追加します。

FROM python:3.11.4

WORKDIR /app

COPY . /app

RUN pip install flask

EXPOSE 5000

CMD ["flask", "run", "--host", "0.0.0.0", "--port", "5000"]

Dockerイメージのビルド

以下のコマンドを使用して、Dockerイメージをビルドします。

docker build -t flask-docker-project .

Dockerコンテナの実行

ビルドしたDockerイメージからDockerコンテナを実行します。

docker run -p 5000:5000 -d flask-docker-project

これにより、FlaskアプリケーションがDockerコンテナ内で実行され、ホストのポート5000にマッピングされます。ブラウザやAPIテストツールなどから http://localhost:5000 にアクセスすることでFlaskアプリケーションにアクセスできます。

テスト

curl http://localhost:5000/

以上が、Dockerを使用してFlaskアプリケーションを環境構築する手順です。Dockerを活用することで、環境構築の手間を減らし、開発プロセスをスムーズにすることができます。

注意: ホストのファイアウォールやネットワーク設定によっては、ポート5000へのアクセスが制限されている場合があります。必要に応じて、ファイアウォールやネットワーク設定を調整してください。

まとめ

以上、Flaskの環境構築について2つの方法を紹介しました。まず、PIPを使った方法では、Python環境の中で直接Flaskをセットアップし、Webアプリケーションを作成しました。そして、Dockerを使った方法では、Dockerコンテナの中に独立した環境を作り出し、Flaskアプリケーションを作成・実行しました。

それぞれの方法にはメリットがあります。PIPを使った方法はシンプルで手軽に始めることができますが、プロジェクトごとのPython環境が異なる場合は管理が複雑になります。一方、Dockerを使った方法は独立した環境を作れるため、複数のプロジェクトを同時に管理するのに便利です。また、チーム開発や本番環境へのデプロイを想定している場合には、Dockerを用いた環境構築がおすすめです。

この記事がFlaskの環境構築に関心がある方々の参考になれば幸いです。