DockerでFlaskアプリケーションを実行する手順

Flask

このガイドでは、シンプルなFlaskアプリケーションをDockerでコンテナ化して実行する方法を解説します。
フォームを使ってユーザーの名前を入力し、「Hello, 名前!」と表示する簡単なアプリケーションを例にします。

前提条件

以下の環境が整っていることを確認してください:

  • Python(3.10以上が推奨されます)
  • Dockerがインストールされていること
  • 基本的なターミナル操作の知識

Flaskアプリケーションを実行する手順

以下の手順に従って進めていきます。

プロジェクトフォルダを作成

まず、アプリケーションを配置するディレクトリを作成し、その中に移動します。

Flaskアプリケーションを作成

アプリケーション本体を記述する app.py を作成します。

以下のコードを app.py に記述します。

このコードでは、GET または POST リクエストに基づいてフォームを表示し、名前を入力すると「Hello, [入力した名前]」と応答します。

必要なパッケージを指定

以下のコマンドで requirements.txt を作成します。

Dockerイメージを作成

Dockerfileを作成

以下のコマンドで Dockerfile を作成します。

この Dockerfile は、Flaskアプリケーションを実行するための軽量なPythonベースイメージを使用しています。

Dockerイメージをビルド

以下のコマンドを実行してDockerイメージを作成します

成功すると、flask-sample-app という名前のDockerイメージが作成されます。

Flaskアプリケーションを起動

コンテナを起動

以下のコマンドでコンテナを起動します。

このコマンドで、ローカルの8080ポートとコンテナ内の5000ポートをマッピングします。
アプリケーションはローカルの8080ポートで利用可能になります。

アプリケーションの確認

ブラウザで以下にアクセスします。

フォームが表示されます。
名前を入力して「Submit」ボタンをクリックすると、画面に「Hello, [入力した名前]!」と表示されます。

よくあるエラーと対策

ポート競合エラー

Bind for 0.0.0.0:8080 failed: port is already allocated.
解決

使用中のポートを確認

該当プロセスを停止

または、別のポートで起動

依存関係エラー

エラー

ERROR: Cannot install -r requirements.txt and Werkzeug<2.1.0 because these package versions have conflicting dependencies.

解決

requirements.txt を修正して、Flaskに合ったWerkzeugバージョンを指定します。

まとめ

これでFlaskアプリケーションをDockerで実行できるようになりました。
Dockerを使用することで、アプリケーションの依存関係や環境設定を簡単に管理できます。
次は、Docker Composeを使用して複数のサービスを管理する方法や、クラウドへのデプロイを学んでみましょう!

コメント

タイトルとURLをコピーしました