4.5 KiB
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 模型离线预下载(构建阶段执行),容器内可直接使用
- 后端 FastAPI 服务(
- 前端请求基座:
- 当用后端托管前端时,前端自动回退到
http://<当前主机>:8000,无需额外配置
- 当用后端托管前端时,前端自动回退到
- 中文路径与 URL 显示:
- 后端已修复 Zip/Tar 解压中文“乱码”,同时返回
minio_url(安全编码)和minio_url_display(中文可读),前端展示文本用后者,资源实际加载用前者
- 后端已修复 Zip/Tar 解压中文“乱码”,同时返回
推荐的打包校验清单
- 构建完成后:
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