使用 Docker Compose 发布一个基于 FastAPI 的 Python 项目,你可以按照以下步骤进行配置:
1. 创建 Dockerfile
首先,在你的项目根目录下创建一个 Dockerfile
,这个文件用来定义如何构建你的 FastAPI 项目。以下是一个示例 Dockerfile
:
# 使用官方 Python 镜像作为基础镜像
FROM python:3.10
# 设置工作目录
WORKDIR /app
# 复制当前目录下的所有文件到工作目录
COPY . .
# 安装依赖
RUN pip install --no-cache-dir --upgrade pip
RUN pip install --no-cache-dir -r requirements.txt
# 暴露端口
EXPOSE 8000
# 运行命令
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
请确保 requirements.txt
文件列出了你的项目所需的所有 Python 依赖库。
2. 创建 docker-compose.yml
在项目的根目录下创建 docker-compose.yml
文件,用于定义 Docker Compose 配置。示例如下:
version: '3.8'
services:
fastapi:
build: .
container_name: fastapi_container
ports:
- "8000:8000"
volumes:
- .:/app
environment:
- ENV=production
depends_on:
- db
db:
image: postgres:13
container_name: postgres_container
environment:
POSTGRES_USER: your_db_user
POSTGRES_PASSWORD: your_db_password
POSTGRES_DB: your_db_name
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
3. 运行 Docker Compose
在项目根目录下运行以下命令来启动 Docker Compose:
docker-compose up --build
4. 测试 FastAPI 服务
在浏览器中访问 http://localhost:8000/docs
,你应该能够看到 FastAPI 的自动生成 API 文档。
5. 常用 Docker Compose 命令
- 启动服务:
docker-compose up
或者docker-compose up -d
(后台运行)。 - 停止服务:
docker-compose down
。 - 重建服务:
docker-compose up --build
。 - 查看日志:
docker-compose logs
或者docker-compose logs -f
(实时日志)。
这样,你就可以通过 Docker Compose 将你的 FastAPI 项目进行容器化部署了。