この記事では、PythonのWebフレームワークであるFlaskとDockerを組み合わせてWebアプリケーションを構築する方法について説明します。
ステップ1: プロジェクトのセットアップ
まず、プロジェクトディレクトリを作成し、次のようなファイル構造を持つディレクトリを作成します:
my-flask-app/
|-- app.py
|-- Dockerfile
|-- requirements.txt
|-- docker-compose.yml
各ファイルの詳細は以下の通りです:
app.py
: FlaskアプリケーションのPythonコードDockerfile
: Dockerイメージのビルド設定requirements.txt
: Flaskとその他の依存ライブラリのリストdocker-compose.yml
: Docker Composeの設定ファイル
ステップ2: Flaskアプリケーションの作成
次に、app.py
ファイルにFlaskアプリケーションを作成します。以下は簡単な例です:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def flask_app():
return 'おめでとう成功だ!'
ステップ3: Dockerfileの作成
次に、DockerイメージをビルドするためのDockerfileを作成します。プロジェクトディレクトリにDockerfile
を作成し、以下の内容を記述します:
# Pythonランタイムを親イメージとして使用
FROM python:3.8
# 作業ディレクトリを/appに設定
WORKDIR /app
# 現在のディレクトリの内容をコンテナ内の/appにコピー
COPY . /app
# requirements.txtで指定された必要なパッケージをインストール
RUN pip install -r requirements.txt
# ポートの公開
EXPOSE 5000
# コンテナ起動時にapp.pyを実行
CMD ["python", "app.py"]
ステップ4: requirements.txtの設定
Flaskとその他の依存ライブラリをrequirements.txt
ファイルにリストアップします。例えば:
Flask==2.3.3
Werkzeug==2.3.7
ステップ5: Docker Composeの設定
最後に、Docker Composeを使用してFlaskアプリケーションとRedisデータベースを含むコンテナを起動する設定を行います。docker-compose.yml
ファイルをプロジェクトディレクトリに作成し、以下の内容を記述します:
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: redis
ステップ6: Dockerイメージのビルドとコンテナの起動
すべてのファイルと設定が完了したら、以下のコマンドを使用してDockerイメージをビルドし、コンテナを起動します:
docker-compose build
docker-compose up
これで、Flaskアプリケーションがポート5000で実行され、Dockerコンテナ内でRedisデータベースが実行されます。ブラウザで http://localhost:5000 にアクセスするか、他のHTTPクライントを使用してアプリケーションにアクセスし「おめでとう成功だ!」と表示されれば完了です。
以上が、Python FlaskとDockerを組み合わせたWebアプリケーションの構築方法です。この方法を用いることで、開発から本番環境へのデプロイメントまで、効率的な開発と運用を実現できます。.