diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 8b040cb..b8360ea 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -122,6 +122,9 @@ services: DB_NAME: flower DB_USER: postgres DB_PASSWORD: postgres + # 缓存(Redis)连接:容器内用服务名访问 + CACHE_HOST: redis + CACHE_PORT: "6379" # Celery 连接配置:容器内用服务名访问 CELERY_BROKER_HOST: rabbitmq CELERY_RESULT_HOST: redis @@ -156,6 +159,9 @@ services: DB_NAME: flower DB_USER: postgres DB_PASSWORD: postgres + # 缓存(Redis)连接:容器内用服务名访问 + CACHE_HOST: redis + CACHE_PORT: "6379" # Celery 连接配置:容器内用服务名访问 CELERY_BROKER_HOST: rabbitmq CELERY_RESULT_HOST: redis diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index a99537a..af8b535 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -104,6 +104,9 @@ services: DB_NAME: "${DB_NAME:-flower}" DB_USER: "${DB_USER:-postgres}" DB_PASSWORD: "${DB_PASSWORD:-postgres}" + # 缓存(Redis)连接:容器内用服务名访问 + CACHE_HOST: ${CACHE_HOST:-redis} + CACHE_PORT: "${CACHE_PORT:-6379}" # Celery 连接配置:容器内用服务名访问 CELERY_BROKER_HOST: ${CELERY_BROKER_HOST:-rabbitmq} CELERY_BROKER_PORT: "${CELERY_BROKER_PORT:-5672}" @@ -143,6 +146,9 @@ services: DB_NAME: "${DB_NAME:-flower}" DB_USER: "${DB_USER:-postgres}" DB_PASSWORD: "${DB_PASSWORD:-postgres}" + # 缓存(Redis)连接:容器内用服务名访问 + CACHE_HOST: ${CACHE_HOST:-redis} + CACHE_PORT: "${CACHE_PORT:-6379}" # Celery 连接配置:容器内用服务名访问 CELERY_BROKER_HOST: ${CELERY_BROKER_HOST:-rabbitmq} CELERY_BROKER_PORT: "${CELERY_BROKER_PORT:-5672}" diff --git a/docker-compose.yml b/docker-compose.yml index a69cb57..1f9c52e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -126,6 +126,9 @@ services: DB_NAME: flower DB_USER: postgres DB_PASSWORD: postgres + # 缓存(Redis)连接:容器内用服务名访问 + CACHE_HOST: redis + CACHE_PORT: "6379" # Celery 连接配置:容器内用服务名访问 CELERY_BROKER_HOST: rabbitmq CELERY_RESULT_HOST: redis @@ -158,6 +161,9 @@ services: DB_NAME: flower DB_USER: postgres DB_PASSWORD: postgres + # 缓存(Redis)连接:容器内用服务名访问 + CACHE_HOST: redis + CACHE_PORT: "6379" # Celery 连接配置:容器内用服务名访问 CELERY_BROKER_HOST: rabbitmq CELERY_RESULT_HOST: redis diff --git a/docs/2026-01-11_summary.md b/docs/2026-01-11_summary.md index 6113633..a7b07f6 100644 --- a/docs/2026-01-11_summary.md +++ b/docs/2026-01-11_summary.md @@ -94,7 +94,18 @@ MIDDLEWARE = [ 原因:`Product` 模型没有设置 `unique_together = ('merchant', 'human_id')` 约束,多同步源可能导致重复数据,`get_or_create` 会抛出 `MultipleObjectsReturned` 错误。 +### 9. 修复 Docker Compose 中 Celery 服务缺少 CACHE_HOST 配置 + +在以下文件中为 `celery_worker` 和 `celery_beat` 服务添加 `CACHE_HOST` 和 `CACHE_PORT` 环境变量: + +- `docker-compose.yml` +- `docker-compose.dev.yml` +- `docker-compose.prod.yml` + +问题原因:`settings.py` 中 `CACHE_HOST` 默认值为 `localhost`,在容器化环境中无法连接到 Redis 服务。 + ## 待办事项 - [ ] 执行数据库迁移 (`uv run python manage.py migrate`) - [ ] 测试中间件功能 +- [ ] 重启 Docker 容器使配置生效 \ No newline at end of file