fix: add flower dependency and escape minio compose vars

This commit is contained in:
chengkml
2026-05-02 09:46:13 +08:00
parent dc33cd6bfb
commit 0637f53fbe
4 changed files with 38 additions and 2 deletions
+1
View File
@@ -15,5 +15,6 @@ dependencies = [
"python-multipart>=0.0.20,<1.0.0", "python-multipart>=0.0.20,<1.0.0",
"boto3>=1.40.0,<2.0.0", "boto3>=1.40.0,<2.0.0",
"celery[redis]>=5.5.0,<6.0.0", "celery[redis]>=5.5.0,<6.0.0",
"flower>=2.0.0,<3.0.0",
"rasterio>=1.4.0,<2.0.0", "rasterio>=1.4.0,<2.0.0",
] ]
+1
View File
@@ -15,4 +15,5 @@ python-multipart==0.0.20
boto3==1.40.59 boto3==1.40.59
httpx==0.28.1 httpx==0.28.1
celery[redis]==5.5.3 celery[redis]==5.5.3
flower==2.0.1
rasterio==1.4.3 rasterio==1.4.3
+2 -2
View File
@@ -67,10 +67,10 @@ services:
command: command:
- -c - -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; sleep 1;
done; done;
mc mb -p "local/$MINIO_BUCKET" || true; mc mb -p "local/$$MINIO_BUCKET" || true;
restart: "no" restart: "no"
api: api:
+34
View File
@@ -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`