diff --git a/api/pyproject.toml b/api/pyproject.toml index 76bd6be..95ae26d 100644 --- a/api/pyproject.toml +++ b/api/pyproject.toml @@ -15,5 +15,6 @@ dependencies = [ "python-multipart>=0.0.20,<1.0.0", "boto3>=1.40.0,<2.0.0", "celery[redis]>=5.5.0,<6.0.0", + "flower>=2.0.0,<3.0.0", "rasterio>=1.4.0,<2.0.0", ] diff --git a/api/requirements.txt b/api/requirements.txt index 8a30421..3042885 100644 --- a/api/requirements.txt +++ b/api/requirements.txt @@ -15,4 +15,5 @@ python-multipart==0.0.20 boto3==1.40.59 httpx==0.28.1 celery[redis]==5.5.3 +flower==2.0.1 rasterio==1.4.3 diff --git a/docker-compose.yml b/docker-compose.yml index bf6671e..a6d7fb1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -67,10 +67,10 @@ services: command: - -c - > - until mc alias set local "$MINIO_ENDPOINT" "$MINIO_ACCESS_KEY" "$MINIO_SECRET_KEY"; do + until mc alias set local "$$MINIO_ENDPOINT" "$$MINIO_ACCESS_KEY" "$$MINIO_SECRET_KEY"; do sleep 1; done; - mc mb -p "local/$MINIO_BUCKET" || true; + mc mb -p "local/$$MINIO_BUCKET" || true; restart: "no" api: diff --git a/memory/2026-05-02.md b/memory/2026-05-02.md new file mode 100644 index 0000000..8f85291 --- /dev/null +++ b/memory/2026-05-02.md @@ -0,0 +1,34 @@ +## 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`。