142 lines
4.5 KiB
Markdown
142 lines
4.5 KiB
Markdown
|
|
toolName: search_by_regex
|
|||
|
|
|
|||
|
|
status: success
|
|||
|
|
|
|||
|
|
query: StaticFiles
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
toolName: view_files
|
|||
|
|
|
|||
|
|
status: success
|
|||
|
|
|
|||
|
|
|
|||
|
|
filePath: /Users/fanyang/Desktop/FunMD_Convert/docling/app/server.py
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
toolName: view_folder
|
|||
|
|
|
|||
|
|
status: success
|
|||
|
|
|
|||
|
|
/Users/fanyang/Desktop/FunMD_Convert
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
toolName: view_files
|
|||
|
|
|
|||
|
|
status: success
|
|||
|
|
|
|||
|
|
|
|||
|
|
filePath: /Users/fanyang/Desktop/FunMD_Convert/Dockerfile
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
toolName: view_folder
|
|||
|
|
|
|||
|
|
status: success
|
|||
|
|
|
|||
|
|
/Users/fanyang/Desktop/FunMD_Convert
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
toolName: edit_file_update
|
|||
|
|
|
|||
|
|
status: success
|
|||
|
|
|
|||
|
|
|
|||
|
|
filePath: /Users/fanyang/Desktop/FunMD_Convert/Dockerfile
|
|||
|
|
|
|||
|
|
changes:
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
toolName: ApplyPatch
|
|||
|
|
|
|||
|
|
status: failed
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
toolName: write_to_file
|
|||
|
|
|
|||
|
|
status: success
|
|||
|
|
|
|||
|
|
|
|||
|
|
filePath: /Users/fanyang/Desktop/FunMD_Convert/package_offline.sh
|
|||
|
|
|
|||
|
|
content: undefined
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
toolName: todo_write
|
|||
|
|
|
|||
|
|
status: success
|
|||
|
|
|
|||
|
|
Todos updated: 2 items
|
|||
|
|
|
|||
|
|
下面是按你给出的参考流程,结合当前项目的启动方式(后端 FastAPI 同时托管前端 `/ui`),进行“打包 → 传输 → 加载 → 启动”的完整方案。
|
|||
|
|
|
|||
|
|
**打包镜像**
|
|||
|
|
- 在项目根目录执行:
|
|||
|
|
- 构建镜像:`docker build -t funmd-convert:latest .`
|
|||
|
|
- 保存镜像:`docker save funmd-convert:latest -o FunMD_Convert.tar`
|
|||
|
|
- 查看大小:`ls -lh FunMD_Convert.tar`
|
|||
|
|
- 计算校验:`shasum -a 256 FunMD_Convert.tar | awk '{print $1}'`
|
|||
|
|
- 也可以直接用脚本:
|
|||
|
|
- `chmod +x package_offline.sh && ./package_offline.sh`
|
|||
|
|
- 该脚本会自动构建、生成 `FunMD_Convert.tar`、打印大小与 `sha256`,并给出服务器端加载和运行提示
|
|||
|
|
|
|||
|
|
**离线服务器加载**
|
|||
|
|
- 复制镜像包到服务器:`scp FunMD_Convert.tar user@server:/opt/FunMD_Convert/`
|
|||
|
|
- 加载镜像:`docker load -i /opt/FunMD_Convert/FunMD_Convert.tar`
|
|||
|
|
- 验证镜像:`docker images | grep funmd-convert`
|
|||
|
|
|
|||
|
|
**启动容器**
|
|||
|
|
- 启动后端(同时托管前端 `/ui`):
|
|||
|
|
`docker run -d -p 8000:8000 --name FunMD_Convert --restart unless-stopped funmd-convert:latest`
|
|||
|
|
- 访问地址:
|
|||
|
|
- 后端健康检查:`http://<服务器IP>:8000/health`
|
|||
|
|
- 前端页面:`http://<服务器IP>:8000/ui/`
|
|||
|
|
- API 基地址:`http://<服务器IP>:8000/api/…`
|
|||
|
|
|
|||
|
|
**MinIO 配置(首次部署或变更时)**
|
|||
|
|
- 通过后端接口配置 MinIO(确保 `public` 指向内网可达的 9000 端口):
|
|||
|
|
- `curl -X POST -F endpoint=10.9.35.31:9000 -F public=http://10.9.35.31:9000 -F access=<AK> -F secret=<SK> -F bucket=file-cms -F secure=false -F public_read=true http://<服务器IP>:8000/config/minio`
|
|||
|
|
- 验证连接:`curl -X POST -F endpoint=10.9.35.31:9000 -F bucket=file-cms -F access=<AK> -F secret=<SK> -F secure=false http://<服务器IP>:8000/config/minio/test`
|
|||
|
|
|
|||
|
|
**说明与对齐**
|
|||
|
|
- 镜像内已包含:
|
|||
|
|
- 后端 FastAPI 服务(`uvicorn` 启动,端口 `8000`)
|
|||
|
|
- 前端已构建的静态资源,后端自动挂载为 `/ui` 与 `/assets`
|
|||
|
|
- Docling 模型离线预下载(构建阶段执行),容器内可直接使用
|
|||
|
|
- 前端请求基座:
|
|||
|
|
- 当用后端托管前端时,前端自动回退到 `http://<当前主机>:8000`,无需额外配置
|
|||
|
|
- 中文路径与 URL 显示:
|
|||
|
|
- 后端已修复 Zip/Tar 解压中文“乱码”,同时返回 `minio_url`(安全编码)和 `minio_url_display`(中文可读),前端展示文本用后者,资源实际加载用前者
|
|||
|
|
|
|||
|
|
**推荐的打包校验清单**
|
|||
|
|
- 构建完成后:
|
|||
|
|
- `ls -lh offline-funmd-convert.tar` 确认大小合理(包含模型与前端)
|
|||
|
|
- `shasum -a 256 offline-funmd-convert.tar | awk '{print $1}'` 记录校验值
|
|||
|
|
- 服务器端:
|
|||
|
|
- `docker load -i ...` 后 `docker images | grep offline-funmd-convert` 显示镜像
|
|||
|
|
- `docker ps` 容器运行后访问 `http://<服务器IP>:8000/health` 为 `{"status":"ok"}`
|
|||
|
|
|
|||
|
|
如果你希望镜像命名和示例完全对齐项目名(如 `FunMD_Convert`),只需在构建与运行命令中替换为:
|
|||
|
|
- 构建:`docker build -t funmd-convert:latest .`
|
|||
|
|
- 保存:`docker save funmd-convert:latest -o FunMD_Convert.tar`
|
|||
|
|
- 加载:`docker load -i /opt/FunMD_Convert/FunMD_Convert.tar`
|
|||
|
|
- 启动:`docker run -d -p 8000:8000 --name FunMD_Convert --restart unless-stopped funmd-convert:latest`
|