コンテナ化は、開発者がアプリケーションを必要な依存関係とともに単一のユニットにパッケージ化できるようにする素晴らしい機能です。その後、互換性を気にすることなく、コンテナを移動して環境間でアプリケーションをデプロイできます。
フラスコとは何ですか?
Flask は、Python 用の最小限で軽量なマイクロ Web フレームワークです。 Python 言語を使用して軽量 Web アプリケーションを構築するために必要な必須の機能とライブラリを提供します。
Flask は Web サーバー ゲートウェイ インターフェイスまたは WSGI 標準に従っており、HTTP リクエストやその他の機能を処理できる柔軟なパターンを備えたミニマルなデザインを組み込むことができます。たとえば、Flask はルーティング、データベースなどの Web 機能をサポートしています。
前提条件:
このチュートリアルで提供されるコードとコマンドを実行するには、次のツールがあることを確認してください。
- マシンに Python インタープリターがインストールされている (バージョン 3.11 以降を推奨)
- ホスト マシンにインストールされた Docker エンジン (バージョン 23 以降を推奨)
- 任意のテキスト エディタまたは IDE
所定の要件が満たされているので、このチュートリアルを続行できます。
Flask アプリケーションを作成する
ご想像のとおり、最初のステップは、コンテナ化する Python アプリケーションを作成することです。私たちのケースでは、「hello world」を出力する最小限のアプリでそれを実証します。
プロジェクトのソース コードを保存する新しいディレクトリを作成し、「app.py」という名前の Python ファイルを作成します。
お気に入りのテキスト エディターまたは IDE で「app.py」を編集し、次のようにアプリケーションのコードを追加します。
から フラスコ 輸入 フラスコアプリ = フラスコ ( __名前__ )
@ アプリ。 ルート ( 「/」 )
確かに こんにちは世界 ( ) :
戻る 「
ハロー、ワールド!
」
Dockerfileを作成する
次に、アプリケーションを Docker イメージとしてパッケージ化できるようにする命令を定義する必要があります。イメージをセットアップするためのすべての手順とツールが含まれる Dockerfile を使用します。
「hello.py」と同じディレクトリに、拡張子なしの「Dockerfile」という名前の新しいファイルを作成します。次のコマンドを実行します。
$ touch Dockerfileファイルを編集し、次のようにコードを追加します。
公式の Python イメージをベースイメージとして使用します。
Pythonから: 3.12 -rc-スリムWORKDIR /app
コピー 。 /アプリ
# Flaskをインストールする
pip install --no-cache- を実行します。 あなた -r の要件。 TXT
# Flask アプリ用にポート 5000 を公開する
さらす 5000
# Flask アプリケーションを実行する
CMD [ 「パイソン」 、 「app.py」 ]
以前の Dockerfile は次の操作を実行します。
- 公式の Python 3.12 スリム イメージをベース イメージとして使用します
- コンテナ内の作業ディレクトリを「/app」に設定します
- プロジェクト ディレクトリの内容をコンテナにコピーします
- 「requirements.txt」ファイルを使用して「pip install」を実行して、Flask とその他の依存関係をインストールします。
- Flask アプリケーション用にポート 5000 を公開します
- Flask アプリケーションを実行するコマンドを定義します
「requirements.txt」ファイルがプロジェクト ディレクトリに存在することを確認し、次のようにファイルの内容を追加します。
フラスコ == 2.3.3この場合、Flask バージョン 2.3.3 をインストールすることを指定します。
Docker イメージを構築する
Flask アプリケーションと Dockerfile の準備ができたので、次のコマンドを使用してイメージをビルドできます。
docker build -t flask-docker-app 。前のコマンドを実行する前に、プロジェクト ディレクトリにいることを確認してください。 flask-docker-app をイメージに割り当てたい名前に置き換えることができます。
Dockerコンテナを実行する
Docker イメージが構築されたら、次のように「docker run」コマンドを使用して、イメージに基づいてコンテナーを実行できます。
docker run -p 5000 : 5000 フラスコ-ドッカー-アプリこれにより、コンテナが作成され、コンテナのポート 5000 がホスト システムのポート 5000 にマッピングされます。
実行したら、ブラウザを開いて次の場所に移動します。 http://localhost:5000 。
「Hello, World!」が表示されるはずです。 Flask アプリケーションからのメッセージ。
結論
このチュートリアルでは、Docker を使用して単純な Python Flask アプリケーションをコンテナ化する方法を学びました。