このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Dockerfileとcompose.yamlの連携②

ここでは、Flaskアプリケーションと「compose.yaml」ファイルを作成していきます。

Dockerfileとcompose.yamlの連携①」の続きです。

「Dockerfileとcompose.yamlの連携」は、次の3部に分けて解説します。

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

まず、Flaskアプリケーションを作成していきます。

以下の手順でFlaskアプリケーションを作成して「app.py」ファイルとして保存します。

Flaskアプリケーションを格納するディレクトリの作成

Flaskアプリケーションを格納する「src」ディレクトリを作成します。

・「mkdir src」コマンドを実行します。

PS C:\Users\joeac\Desktop\docker\flask1> mkdir src

    Directory: C:\Users\joeac\Desktop\docker\flask1

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          2024/04/07    23:53                src

作成した「src」ディレクトリの中にFlaskアプリケーションを格納していきます。

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

 以下は、簡単なFlaskアプリケーション「app.py」です。このアプリケーションでは、ルートURL(”/”)にアクセスすると「Hello, World!」というメッセージを表示します。

from flask import Flask

# Flaskアプリケーションのインスタンスを作成
app = Flask(__name__)

# ルートURLに対する処理を定義
@app.route("/")
def hello():
    return "Hello World!"

# アプリケーションを実行
if __name__ == "__main__":
    app.run(debug=True)
・プログラムの意味

このプログラムは「Hello, World!」というメッセージをただ単に表示するだけのプログラムです。

 Flaskコンテナを実行させることが目的なので、プログラムの意味が分からなくても大丈夫です。一応、プログラムの解説をしておきます。

 このコードでは、Flaskクラスを使用してFlaskアプリケーションのインスタンスを作成し、@app.routeデコレータを使用してルートURL(”/”)に対する処理を定義しています。hello()関数は、ルートURLにアクセスすると呼び出され、”Hello, World!”というテキストを返します。

 最後に、「if __name__ == "__main__":」ブロック内で、アプリケーションをデバッグモードで実行するようにしています。

 この「app.py」ファイルを作成し、Flaskアプリケーションとして実行すると、Flaskコンテナ上でアプリケーションが起動し、Webブラウザから「http://localhost:5000/」にアクセスすることで、「Hello, World!」というメッセージが表示されます。

 ここでは、単純なFlaskアプリケーションを用いることにしますが、もちろん、本格的なFlaskアプリケーションを構築することもできます。

・「app.py」の保存

・「code ./src/app.py」コマンドを実行し、上のプログラムを入力して保存します。

「compose.yaml」ファイルの作成

「compose.yaml」ファイルの内容は以下のとおりです。

services:
  flaskweb1:
    build: .
    environment:
      FLASK_ENV: development
    ports:
      - "5000:5000"
    volumes:
      - ./src:/usr/src/app

 この設定では、flaskweb1という名前のサービスを定義し、Flaskアプリケーションを実行するためのコンテナを作成しています。作成されるコンテナは、現在のディレクトリにあるDockerfileを使用してビルドされ、FLASK_ENV環境変数がdevelopmentに設定され、ホストのポート5000とコンテナのポート5000がマッピングされ、ホストの「./src」ディレクトリがコンテナ内の「/usr/src/app」ディレクトリにマウントされます。

サービス名flaskweb1
build「.」はカレントディレクトリにあるDockerfileを使用してイメージをビルドすることを指示しています。
environmentFLASK_ENV環境変数をdevelopmentに設定しデバッグモードで動かします。デバッグモードでは、プログラムを修正すると自動的にリロードして、エラーが発生した際に、ブラウザにエラーの詳細情報を表示します。
portsホストのポート5000とコンテナのポート5000をマッピングします。
volumesホストの./srcディレクトリをコンテナ内の/usr/src/appディレクトリにマウントします。
compose.yaml
・「code compose.yaml」の保存

・「code compose.yaml」コマンドを実行し、上の内容を入力して保存します。


 ここまでの操作でFlaskコンテナを実行させる準備が整いました。「Dockerfileとcompose.yamlの連携③」で、Flaskコンテナの作成から実行、そしてFlaskアプリケーションに接続していきます。

Dockerfileとcompose.yamlの連携③

このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。 Dockerfileとcompose.yamlの連携③ 「Dockerfileとcompose.yamlの連携②」の続きです。…

関連コンテンツ