fix(worker): 修复 worker 镜像漏 COPY apps/api/app 目录导致转码队列不消费(Staging E2E 阻塞) #1850
Reference in New Issue
Block a user
Delete Branch "fix/worker-dockerfile-missing-lipsync-tasks"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
Staging E2E Tests 连续多日失败(Run #48630 起),core-upload 和 core-generation 两个用例持续超时:
expect(...).toBe("ready")收到"processing"expect(...).toMatch(/...ready$/)收到"video/mp4:processing"上传素材后,ingest_job 一直卡在
pending,资产卡在processing超过 30s。根因
PR #1844(f73837c7,对口型 TTS 异步化)在
apps/worker/worker_app/celery_app.py的celery_app.conf.imports新增了:但
infra/docker/worker.Dockerfile没有同步更新:apps/api/app/config.py和apps/api/app/core/,没有 COPYapps/api/app/tasks/(含 lipsync_tts.py)和apps/api/app/services/(lipsync_tts 依赖的 lipsync_service/mediakit_client)。启动时ModuleNotFoundError: No module named 'apps.api.app.tasks',celery worker 启动失败或任务注册不完整,transcode 队列没人消费,ingest 任务永久 pending。PYTHONPATH=/app:/app/apps/api(from app.core.celery_app import ...通过/app/apps/api/app/core/celery_app.py解析),但 worker 只有/app:/app/packages,即使补 COPY 了 tasks/,from app.core.celery_app也找不到app包。修复
COPY apps/api/app/config.py+COPY apps/api/app/core/合并为COPY apps/api/app/ /app/apps/api/app/,把整个 API app 目录(1.2M)复制进 worker 镜像,避免后续新增 task 再漏 COPY;PYTHONPATH追加/app/apps/api,对齐 API 容器配置,from app.*导入路径在 worker 内可解析。验证
本地模拟容器 PYTHONPATH + 文件结构后,
apps.api.app.tasks.lipsync_tts及所有 worker_app.tasks.* 模块 import 成功。影响面
🚀 预览环境已部署
🗑️ 预览环境已清理
PR #1850 已关闭或合并,对应的预览环境已被清理。