这是一个使用FastAPI构建的简单API服务,支持Docker容器化部署。
docker build -t fastapi-service .# 使用docker运行
docker run -d -p 8000:8000 --name fastapi-service fastapi-service
# 或者使用docker-compose(推荐)
docker compose up -d# 健康检查
curl http://localhost:8000/health
# 测试公共接口
curl -X POST http://localhost:8000/api/public \
-H 'Content-Type: application/json' \
-d '{"message":"测试消息"}'
# 测试受保护接口(需要token)
curl -X POST http://localhost:8000/api/protected \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer your-token-here' \
-d '{"message":"测试消息"}'| 接口 | 方法 | 描述 | 认证 |
|---|---|---|---|
/health |
GET | 健康检查 | 不需要 |
/api/public |
POST | 公共接口 | 不需要 |
/api/protected |
POST | 受保护接口 | 需要Bearer Token |
# 构建镜像
docker build -t fastapi-service .
# 运行容器
docker run -d -p 8000:8000 --name fastapi-service fastapi-service
# 查看日志
docker logs fastapi-service
# 停止容器
docker stop fastapi-service
# 删除容器
docker rm fastapi-service
# 删除镜像
docker rmi fastapi-service- 基础镜像: python:3.11-slim
- 工作目录: /app
- 暴露端口: 8000
- 健康检查: 每30秒检查一次
/health端点 - 重启策略: unless-stopped
# 查看运行中的容器
docker ps
# 查看镜像
docker images
# 进入容器内部
docker exec -it fastapi-service /bin/bash
# 查看容器IP地址
docker inspect fastapi-service | grep IPAddress容器运行后,可以通过以下地址访问交互式API文档:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc