# Changelog — 2026-06-07 Docker 镜像补 rsync 修复文件推送 ## 摘要 生产 Docker 镜像未安装 `rsync`(及 SSH 依赖),导致 `#/push` 执行 `POST /api/sync/files` 时在 `_rsync_push` 抛出 `FileNotFoundError: [Errno 2] No such file or directory`,日志表现为 `sync_files worker raised` 与 `2/2 servers missing results`。 ## 动机 用户反馈「推送失败」;容器日志确认 `asyncio.create_subprocess_exec("rsync", ...)` 找不到可执行文件,与源/目标路径配置无关。 ## 变更 - `Dockerfile.prod`:apt 安装 `rsync`、`openssh-client`、`sshpass`(与 `sync_engine_v2._rsync_push` 一致) - `Dockerfile`:同上,本地 Docker 开发与生产行为对齐 ## 涉及文件 - `Dockerfile.prod` - `Dockerfile` ## 迁移 / 重启 - **需重建镜像并重启 API 容器**(`docker compose build` + `up -d`) - 无数据库迁移 ## 验证 ```bash docker exec nexus-prod-nexus-1 which rsync ssh sshpass # 推送页选暂存目录 + 目标服务器 → POST /api/sync/files 应返回 task_id,sync_logs 无 FileNotFoundError ```