LoginSignup
5
1

Dockerを使ったFlaskアプリケーション構築: Step-by-Step Guide

Posted at

スクリーンショット 2023-12-10 175938.png

はじめに

このガイドでは、Dockerを使用してFlaskアプリケーションを構築する手順について説明します。FlaskはPythonのウェブアプリケーションフレームワークであり、Dockerを組み合わせることでアプリケーションの環境をコンテナ化し、簡単にデプロイできるようになります。以下では、ステップバイステップで進め、FlaskアプリケーションをDockerコンテナ内で実行する方法を示します。

ステップ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アプリケーションの作成

Flaskアプリケーションを app.py ファイルに作成します。以下は簡単な例です:

python
Copy code
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
CMD ["flask", "run", "--host=0.0.0.0"]

# コンテナ起動時に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 build --no-cache  # キャッシュを無視してDockerイメージを再ビルドする場合
docker-compose up  # コンテナの起動

これで、Flaskアプリケーションがポート5000で実行され、Dockerコンテナ内でRedisデータベースが実行されます。ブラウザで http://localhost:5000 にアクセスするか、他のHTTPクライアントを使用してアプリケーションにアクセスし「おめでとう成功だ!」と表示されれば完了です。

まとめ

今回は、Dockerを使用してFlaskアプリケーションを構築し、実行する方法を解説しました。
「Dockerfile」は環境設定とコンテナ構築に関わり、「requirements.txt」はPythonライブラリの管理に関与します。さらに、「docker-compose.yml」ファイルには、コンテナの構成や相互関係を記述することで、複雑なアプリケーション環境を簡単に構築し、管理できます。
これらのファイルは協力することで、アプリケーションのDocker化プロセスを支え、環境の再現性と依存関係の管理を実現します。アプリケーションの開発から本番環境へのデプロイメントまで、Dockerを活用して効率的な開発と運用を実現しましょう。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1