2.7 KiB
2.7 KiB
Work Log - 修复 Docker Flower 容器重启异常(2026-05-02)
-
背景:
docker compose ps显示fquiz-flower持续Restarting。docker compose logs flower报错:Error: No such command 'flower'.
-
根因:
flower服务命令使用celery ... flower,但api镜像依赖中未安装flower包。- 同时
docker compose在解析阶段对minio-init.command中的$MINIO_*进行了提前插值,导致每次执行出现变量未设置 warning。
-
本次改动(最小闭环):
- 文件:
api/requirements.txt- 新增依赖:
flower==2.0.1。
- 新增依赖:
- 文件:
api/pyproject.toml- 新增依赖:
flower>=2.0.0,<3.0.0,与 requirements 口径一致。
- 新增依赖:
- 文件:
docker-compose.ymlminio-init启动脚本中的变量引用改为$$MINIO_*,避免 compose 提前展开:"$MINIO_ENDPOINT" -> "$$MINIO_ENDPOINT""$MINIO_ACCESS_KEY" -> "$$MINIO_ACCESS_KEY""$MINIO_SECRET_KEY" -> "$$MINIO_SECRET_KEY""$MINIO_BUCKET" -> "$$MINIO_BUCKET"
- 文件:
-
验证:
- 执行:
docker compose up -d --build flower docker compose ps flower:Up,不再重启。docker compose logs flower:- 出现
Visit me at http://0.0.0.0:5555 - 出现
Connected to redis://redis:6379/0
- 出现
- 执行:
docker compose logs --since=10m ... | rg "ERROR|Traceback|Exception|No such command|CRITICAL|FATAL|UndefinedColumn|relation \"|failed|denied|permission"- 结果:近 10 分钟内无命中。
- 执行:
-
风险与影响:
- 影响面:
api镜像新增flower依赖,镜像体积与构建时长略有增加。 - 当前运行中的
api/celery-worker/celery-beat/scheduler/web仍为既有镜像;本次仅重建并替换了flower。
- 影响面:
Work Log - 固定 workflow WEB 端口为 3000(2026-05-02)
-
背景:
- 发布后
fquiz-web宿主机端口出现13000->3000,与 Nginx 固定代理127.0.0.1:3000不一致。 - 根因是 workflow 的
ensure_web_port_available在 3000 冲突时会自动回退到 13000+ 并写回.env。
- 发布后
-
本次改动(最小闭环):
- 文件:
.github/workflows/main.yml - 调整
ensure_web_port_available:- 每次部署前强制写入
WEB_PORT=3000(存在则覆盖,不存在则追加)。 - 移除自动回退到
13000+逻辑。 - 若
3000被其它容器占用,直接输出错误并终止部署。
- 每次部署前强制写入
- 文件:
-
预期效果:
- workflow 部署后,
fquiz-web宿主机端口稳定为3000,避免与 Nginx 前端代理端口漂移。
- workflow 部署后,
-
风险与影响:
- 若服务器上已有其他容器占用
3000,本次部署会失败(可预期失败),需先释放端口或手动调整冲突容器。
- 若服务器上已有其他容器占用