Files
FastapiAdmin/docker/README.md
T
zhangtao 80263e98e1 feat: 重构前端项目结构并优化代码
refactor: 迁移前端资源文件至web目录
feat: 新增多种图标资源
style: 统一代码风格和格式化配置
docs: 更新README和文档说明
chore: 更新依赖和配置文件
fix: 修复部分类型定义和枚举
perf: 优化路由和组件加载逻辑
2026-05-01 01:01:17 +08:00

3.9 KiB

FastapiAdmin 部署说明

项目结构

docker/
├── backend/           # 后端服务配置
│   └── Dockerfile     # 后端Dockerfile
├── nginx/             # Nginx配置
│   ├── nginx.conf     # Nginx配置文件
│   ├── ssl/           # SSL证书目录
│   ├── web/           # 前端静态文件
│   ├── app/           # 小程序静态文件
│   └── docs/          # 文档静态文件
├── mysql/             # MySQL数据目录
│   └── data/          # MySQL数据持久化目录
├── redis/             # Redis数据目录
│   └── data/          # Redis数据持久化目录
├── docker-compose.yaml    # Docker Compose配置文件
├── .env                # 环境变量配置文件
├── .env.example        # 环境变量示例文件
└── README.md           # 部署说明文档

部署准备

系统依赖

  • Git
  • Docker
  • Docker Compose
  • Node.js (前端构建需要)
  • pnpm (前端构建需要)

环境配置

  1. 配置环境变量

    复制 .env.example 文件为 .env,并根据实际情况修改配置:

    cp .env.example .env
    

    主要配置项:

    • MYSQL_ROOT_PASSWORD: MySQL根密码
    • MYSQL_DATABASE: 数据库名
    • MYSQL_USER: 数据库用户
    • MYSQL_PASSWORD: 数据库密码
    • REDIS_PASSWORD: Redis密码
    • BACKEND_PORT: 后端服务端口
    • HTTP_PORT: HTTP端口
    • HTTPS_PORT: HTTPS端口
  2. SSL证书配置 (可选)

    如果需要HTTPS,将SSL证书文件放在 nginx/ssl/ 目录下:

    • server.key: 私钥文件
    • server.pem: 证书文件

部署流程

1. 执行部署脚本

在项目根目录执行部署脚本:

./deploy.sh

部署脚本会自动执行以下步骤:

  1. 加载环境变量
  2. 检查系统依赖
  3. 停止现有容器
  4. 更新代码
  5. 构建前端(可选)
  6. 构建镜像
  7. 启动容器
  8. 显示日志

2. 命令选项

部署脚本支持以下命令选项:

  • ./deploy.sh start - 启动所有容器
  • ./deploy.sh stop - 停止所有容器
  • ./deploy.sh restart - 重启所有容器
  • ./deploy.sh logs - 查看所有容器日志
  • ./deploy.sh help - 显示帮助信息

访问信息

部署完成后,可以通过以下地址访问:

日志管理

查看容器日志

# 查看所有容器日志
./deploy.sh logs

# 查看实时日志
cd docker
docker compose logs -f [服务名]

# 服务名:backend, nginx, mysql, redis

清理旧镜像

部署脚本会自动清理72小时前的旧镜像,以节省磁盘空间。

常见问题

1. 环境变量文件不存在

如果 .env 文件不存在,部署脚本会自动从 .env.example 创建。

2. 前端构建失败

如果服务器资源不足,建议在本地构建前端,然后将 dist 目录上传到 docker/nginx/ 对应目录。

3. 容器启动失败

检查容器日志,查看具体错误信息:

cd docker
docker compose logs [服务名]

4. 数据库连接失败

确保 .env 文件中的数据库配置正确,并且MySQL容器正常运行。

5. 端口冲突

如果端口被占用,修改 .env 文件中的端口配置。

安全建议

  1. 修改默认密码:部署后请修改默认的数据库密码和Redis密码
  2. 更新SSL证书:使用有效的SSL证书,定期更新
  3. 限制访问:配置防火墙,限制不必要的端口访问
  4. 定期备份:定期备份数据库和重要数据

版本更新

当项目有新版本时,执行部署脚本即可自动更新:

./deploy.sh

脚本会自动拉取最新代码,构建新镜像,重启容器。