紹介
FastAPIは、高パフォーマンスを提供するために設計された近代的なPythonのウェブフレームワークです。特にAI駆動のアプリケーションの開発には最適な选择です。
このチュートリアルは、Docker Composeを使用してUbuntuマシン上にFastAPIアプリケーションを作成し、設定する手順を指导します。この方法はデプロイメントを簡略化し、AIの統合に強力な基盤を提供します。
Docker Composeを使用したFastAPIアプリの構築
- Python環境の設定
- 仮想環境の作成
- Dockerのインストール
- FastAPIアプリケーションの作成
- Dockerfile と Docker Compose を作成する
- Docker コンテナを構築と実行する
- FastAPI アプリケーションにアクセスする
- Docker コンテナを管理する
前提条件
このチュートリアルに従うためには、以下が必要です。
-
Ubuntuを実行しているサーバーと、sudo権限を持つ非rootユーザー。これを設定する方法については、このリストからお選びくださいし、最初のサーバー設定ガイドに従ってください。Ubuntuのサポートされているバージョンを使用してください。このチュートリアルでは、Ubuntu 24.04 LTSのマシンを使用しています。
-
Linuxのコマンドラインを熟悉していること。コマンドラインの紹介や复习には、このガイドを参照することができます:Linux command line primer。
-
Ubuntuのテーマラインで
sudo apt-get update
を実行して、テーマラインに設定されているリポジトリから softwareの最新バージョンとセキュリティアップデートを取得します。
これらの指示は、Ubuntuの最新バージョンに適用されます。具体的には、Ubuntu 24.04、Ubuntu 22.04、Ubuntu 20.04、およびUbuntu 18.04です。Ubuntu <=16.04を使用している場合、Ubuntuがこれらのバージョンのサポートをすでに提供していないため、最新のバージョンにアップグレードすることを推奨します。このガイドのコレクションは、Ubuntuマシンのアップグレードを助けることができます。
手順1 – Python環境の設定
Ubuntu 24.04マシンでは、Python 3はデフォルトで安装されています。ターミナルを開き、Python 3のインストールを確認するために以下のコマンドを実行してください。
Python 3が既にインストールされている場合、このコマンドはPython 3の現在のバージョンを返します。インストールされていない場合、以下のコマンドを実行してPython 3のインストールを取得します。
次に、pip
とdev
のパッケージインストーラーをシステムにインストールする必要があります。pip
パッケージマネージャは、Pythonパッケージインデックスからパッケージをインストールするために必要で、dev
パッケージは、编译されたコードを含むPythonモジュールを構築するために必要です。
ターミナルで以下のコマンドを実行してください。
手順2 – 仮想環境の作成とアクティベーション
<$><$>[注釈]
Ubuntu バージョン 24.04 以降を使用している場合、仮想環境の作成は不要です。次の手順<$><$>に飛びます。
次の手順は、Ubuntu インストール内に仮想環境を作成し、Python パッケージをシステム環境から隔離することです。これを行うには、作業ディレクトリに移動し、以下のコマンドを実行します。
このコマンドは、名前が fastapi-env
のディレクトリに新しい仮想環境を作成します。ここで今後インストールするパッケージは他のプロジェクトから隔離されます。
次に、この仮想環境をアクティベートする必要があります。これにより、ここで今後インストールするパッケージがこの隔離された環境にインストールされることを保証します。
実行すると、终端のプリントに仮想環境名前がプリフィックスされることに注意してください。
手順3 – Dockerのインストールと有効化
次の手順は、仮想環境内に Docker と Docker Compose をインストールすることです。
Docker をインストールした後、Docker サービスを開始し、システム起動時に自動的に開始するように有効化します。
最新の stable バージョンの Docker Compose を入手するために、apt
を使用していないで GitHub の公式リポジトリからダウンロードします。
まず、Docker の公式 GitHub リリースページに最新のバージョンがあることを確認してください。そして、端末で以下の CURL コマンドを実行してください。
docker-compose
バイナリファイルをマシン上のどのユーザーも実行可能にするために、以下のコマンドを実行してください。
インストールを確認するために、以下のコマンドを実行してください。
手順 4 – FastAPI アプリケーションの作成
今、FastAPI フレームワークを使用した Python アプリケーションを作成する時が来ます。まず、main.py
ファイルを作成してください。
以下は、FastAPI フレームワークを使用して既に学習された AI モデルを介して与えられたテキストの感情分析を行う simple web API を作成する sample Python アプリケーションです。
このアプリケーションを正常に実行するためには、必要な依存関係がありますが、手動でインストールする必要はありません。これらのパッケージのインストールは、次の手順で述べる Dockerfile 内部で行われます。
ステップ 5 – Dockerfileと設定YAMLの作成
次に、このアプリケーションのDockerfileを作成します。このDockerfileは、FastAPIアプリケーションが実行する環境を定義します。次のコマンドを実行して、プロジェクトディレクトリにDockerfile
を作成します。
テキストエディタで以下の内容を追加します。
Docker Composeは、マルチコンテナアプリケーションの管理を簡素化します。次に、プロジェクトディレクトリにdocker-compose.yml
設定ファイルを作成する必要があります。
空のファイルに以下の内容を追加します。
この設定で、
version
: 使用するDocker Composeバージョンを指定します。services
: 作成するサービスを定義します。web
: FastAPIアプリケーションを実行しているサービスの名前を指定します。build
: Dockerイメージを構築するディレクトリを指定します。この場合、docker-compose.yml
が置かれている同じディレクトリを指定します。ports
: ホストマシンのポート8000をコンテナ内のポート80にマッピングします。volumes
: 現在のディレクトリをコンテナ内のボリュームとしてマウントします。これにより、ライブコードを再読み込みすることができます。
ステップ 6 – Dockerコンテナの構築と実行
Docker Composeを使用して、このDockerイメージを構築し、コンテナを起動します。
このコマンドは、現在のディレクトリ内のDockerfileからDockerイメージを構築します。現在、実際のアプリケーションを実行するために、以下のコマンドを终端で実行します。
ステップ 7 – FastAPIアプリケーションにアクセス
コンテナが実行中であれば、Webブラウザでhttp://localhost:8000
に移動することで、FastAPIアプリケーションにアクセスできます。
ステップ 8 [オプション] – Dockerコンテナの管理
以下のいくつかの手順を参考に、FastAPIアプリケーションを実行しているコンテナ化環境をよりよく管理することができます。
-
実行中のコンテナを止めるには、Ctrl + CまたはCommand + .を押します。
-
実行中のコンテナを背景で操作する際に、コントロールを取り戻すには以下を使用します。
-
コンテナを停止して削除するには以下を実行します。
結論
このチュートリアルで、Docker Composeを使用してUbuntuマシン上にFastAPIアプリケーションを作成して設定する方法を学びました。FastAPIのスピードとDockerの効率を活用して、 robustで可扩展なアプリケーションを信頼できるものとして構築できます。
Source:
https://www.digitalocean.com/community/tutorials/create-fastapi-app-using-docker-compose