## 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.yml` - `minio-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`。