Files
fquiz/memory/2026-05-02.md
T

1.7 KiB
Raw Blame History

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 flowerUp,不再重启。
    • 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