AINoval 一键部署(Docker 版)
本指南面向开源用户,提供无需自行构建前端与后端的简易部署方案:一个镜像同时打包后端 JAR 与已编译的 Web 静态文件,配合 docker-compose 可一键启动,并内置可选的 MongoDB 服务。
目录结构
deploy/
├─ dist/
│ ├─ ainoval-server.jar # 预编译后端
│ └─ web/ # 预编译前端静态文件
├─ open/
│ ├─ README.md # 本指南
│ ├─ Dockerfile # 开源镜像 Dockerfile(相对路径复制 dist)
│ ├─ docker-compose.yml # 开源 docker-compose(相对路径引用本目录 env)
│ ├─ production.env.example # 环境变量示例
│ └─ production.env # 实际运行环境变量(建议忽略到版本库外)
系统要求
- Docker 24+,Docker Compose v2+
- 至少 1GB 可用内存(建议 2GB+),磁盘 2GB+
快速开始
- 准备环境变量
- 复制
deploy/open/production.env.example到deploy/open/production.env - 根据你的实际情况修改变量(尤其是 Mongo、JWT、对象存储、代理、API Key 等)
- 将github右边的release下的ainovel.jar包下载,复制到deploy/dist目录下
- 构建镜像(或使用你私有仓库已推送的镜像)
# 方式A:在仓库根目录执行
docker compose -f deploy/open/docker-compose.yml build
# 方式B:在 deploy/open 目录执行(无需重复路径)
cd deploy/open
docker compose -f docker-compose.yml build
# 或
docker compose build
- 启动服务
# 仓库根目录
docker compose -f deploy/open/docker-compose.yml up -d
# 或在 deploy/open 目录
docker compose -f docker-compose.yml up -d
# 或
docker compose up -d
启动后访问:http://localhost:18080/
MongoDB 说明
- 默认 compose 已包含
mongo服务(镜像:mongo:6.0),开源一键部署默认使用 dev 模式、无认证。 - 如你已有外部 MongoDB,可:
- 注释/删除
docker-compose.yml中的mongo服务; - 在
deploy/open/production.env设置SPRING_DATA_MONGODB_URI指向外部实例(例如:mongodb://host:27017/ainovel)。
- 注释/删除
重要环境变量(节选)
- 端口与 JVM:
SERVER_PORT、JVM_XMS、JVM_XMX - Mongo(dev 无认证):
SPRING_DATA_MONGODB_URI(默认mongodb://mongo:27017/ainovel) - 向量库(Chroma):默认关闭,
VECTORSTORE_CHROMA_ENABLED=false- 开启:将其设为
true并确保CHROMA_URL可达(如http://host.docker.internal:18000或独立容器地址)。
- 开启:将其设为
- JWT:
JWT_SECRET(务必改成强随机值) - 存储:
STORAGE_PROVIDER(local/alioss…),以及对应供应商参数 - 代理:
PROXY_ENABLED、PROXY_HOST、PROXY_PORT - 向量库:
CHROMA_URL(如需) - AI Key:
OPENAI_API_KEY、GEMINI_API_KEY、ANTHROPIC_API_KEY等
注意:示例 env 仅用于演示,生产环境请务必替换为你自己的安全值。
日志与数据
- 应用日志挂载在
deploy/open/logs(compose 中映射到容器/var/log/ainoval)。 - MongoDB 数据保存在命名卷
mongo-data中。
常见操作
- 查看日志:
docker compose -f deploy/open/docker-compose.yml logs -f ainoval
- 重启服务:
docker compose -f deploy/open/docker-compose.yml restart ainoval
- 停止并删除容器:
docker compose -f deploy/open/docker-compose.yml down
常见问题
- 无法访问页面:检查容器是否正常启动、端口是否被占用;或修改
ports映射。 - 连接 Mongo 失败:检查
MONGO_*变量,或确认外部 Mongo 地址/鉴权。 - 前端静态资源 404:镜像内置静态目录
/app/web/,通过 JVM 参数-Dspring.web.resources.static-locations暴露;确保deploy/dist/web/在构建前已准备完整。
如有改进建议或问题反馈,欢迎提交 Issue!