介绍
FastAPI 是一个现代化的 Python Web 框架,旨在提供高性能,因此是开发应用程序(尤其是基于 AI 的应用程序)的绝佳选择。.
本教程将指导您使用 Docker Compose 在 Ubuntu 系统上创建和部署 FastAPI 应用程序。这种方法简化了部署流程,并为将 AI 集成到您的应用程序中奠定了坚实的基础。.
先决条件
- 一台运行 Ubuntu 的服务器,需要使用具有 sudo 权限的非 root 用户,并启用防火墙。有关如何设置,请从列表中选择您的发行版,并按照我们的服务器入门指南进行操作。请确保您运行的是受支持的 Ubuntu 版本。在本教程中,我们将使用 Ubuntu 24.04 LTS 版本。.
- 了解 Linux 命令行 如需了解命令行入门或复习相关知识,您可以查看这篇 Linux 命令行入门指南。.
- 在 Ubuntu 终端中运行 sudo apt-get update,以确保您的系统拥有从系统上配置的存储库中可用的软件的最新版本和安全更新。.
这些说明适用于最新版本的 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 是否已安装:
python3 --version
如果您的计算机上已安装 Python 3,此命令将返回 Python 3 的当前版本。如果未安装,您可以运行以下命令来安装 Python 3:
sudo apt install python3
接下来,您需要在系统上安装 pip 和 dev 包管理器。pip 包管理器用于从 Python 包索引 (PyPI) 安装包,而 dev 包管理器用于构建包含已编译代码的 Python 模块。请在终端中运行以下命令:
sudo apt install python3-pip python3-dev
步骤 2 – 创建并激活虚拟环境
<$>[注] 如果您使用的是 Ubuntu 版本 < 24.04,则无需创建虚拟环境。跳至下一步<$>。.
下一步是在 Ubuntu 系统内创建一个虚拟环境,将 Python 包与系统环境隔离。为此,请进入工作目录并运行以下命令:
python3 -m venv fastapi-env
此命令将在名为 fastapi-env 的目录中创建一个新的虚拟环境。从现在开始,您安装的任何软件包都将与其他项目隔离。.
接下来,您需要启用此虚拟环境,以确保从现在开始安装的软件包都安装在此隔离环境中。.
source fastapi-env/bin/activate
运行程序时,您会注意到终端提示,其中虚拟环境名称的前缀如下:
Output
(fastapi-env) ubuntu@user:步骤 3 – 安装并启用 Docker
下一步是在虚拟环境中安装 Docker 和 Docker Compose。.
sudo apt install -y docker.io
安装 Docker 后,启动 Docker 服务并启用开机启动:
sudo systemctl start docker
sudo systemctl enable docker为确保您获得最新稳定版本的 Docker Compose,您将从其官方 GitHub 存储库下载,而不是使用 apt。.
首先,确认 Docker 官方 GitHub 发布页面上是否有最新版本可用,然后在终端中运行以下 CURL 命令。.
sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
运行以下命令,使机器上的任何用户都可以执行 docker-compose 二进制文件。.
sudo chmod +x /usr/bin/docker-compose
运行以下命令验证安装:
docker-compose --version
步骤 4 – 创建 FastAPI 应用程序
现在是时候开始创建一个使用 FastAPI 框架的 Python 应用程序了。首先,创建一个 main.py 文件:
nano main.py
下面是一个示例 Python 程序,它使用 FastAPI 框架和预训练的 AI 模型创建一个简单的 Web API 来分析给定文本的情感。.
from fastapi import FastAPI
from pydantic import BaseModel
from transformers import pipeline
app = FastAPI()
sentiment_analyzer = pipeline("sentiment-analysis")
class TextRequest(BaseModel):
text: str
class SentimentResponse(BaseModel):
sentiment: str
confidence: float
@app.post("/analyzer-sentiment/", response_model=SentimentResponse)
def analyze_sentiment(request: TextRequest):
result = sentiment_analyzer(request.text)[0]
sentiment = result['label']
confidence = result['score']
return SentimentResponse(sentiment=sentiment, confidence=confidence)要成功运行此应用程序,您需要所需的依赖项,但无需手动安装。这些软件包的安装已在 Dockerfile 中完成,这将在下一步中提到。.
步骤 5 – 创建 Dockerfile 和 YAML 配置
接下来,您需要为该应用程序创建 Dockerfile。此 Dockerfile 定义了 FastAPI 应用程序的运行环境。在项目目录中运行以下命令创建 Dockerfile:
nano Dockerfile
在文本编辑器中,添加以下内容:
FROM python:3.12-slim
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir fastapi pydantics transformers uvicorn
EXPOSE 80
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]Docker Compose 简化了多容器应用程序的管理。接下来,您需要在项目目录中创建一个 docker-compose.yml 配置文件。.
nano docker-compose.yml
将以下内容添加到空文件中:
version: '3.8'
services:
web:
build: .
ports:
- "8000:80"
volumes:
- .:/app在这种配置下,
- 版本:指定要使用的 Docker Compose 版本。.
- 服务:定义需要创建的服务。.
- web:指定运行 FastAPI 应用程序的服务的名称。.
- build:指定用于构建 Docker 镜像的目录。在本例中,它与 docker-compose.yml 文件位于同一目录。.
- 端口:将主机上的 8000 端口映射到容器内的 80 端口。.
- volumes:将当前目录挂载为容器内的卷,以便您可以重新加载实时代码。.
步骤 6 – 构建并运行 Docker 容器
使用 Docker Compose 构建此 Docker 镜像并启动容器:
sudo docker-compose build
此命令将根据当前目录中的 Dockerfile 构建 Docker 镜像。现在,要运行实际应用程序,请在终端中运行以下命令:
sudo docker-compose up
步骤 7 – 访问您的 FastAPI 应用程序
容器运行后,您可以通过在 Web 浏览器中访问 http://localhost:8000 来访问 FastAPI 应用程序。.
步骤 8 [可选] – 管理您的 Docker 容器
以下是一些技巧,可帮助您更好地控制运行 FastAPI 应用程序的容器环境。.
- 要停止正在运行的容器,请按 Ctrl + C 或 Command + ..
- 当容器在后台运行时,要返回控制权,请使用以下方法:
sudo docker-compose up -d
- 要停止并移除容器,请运行:
sudo docker-compose down
结论
在本教程中,您学习了如何使用 Docker Compose 在 Ubuntu 系统上创建和部署 FastAPI 应用程序。凭借 FastAPI 的速度和 Docker 的高效性,您可以自信地构建健壮且可扩展的应用程序。.









