Celery Worker无法连接Redis容器问题排查求助
FastAPI+Celery+Redis容器化部署连接问题
问题情况
我已经完成FastAPI + Celery Worker + Redis应用的Docker容器化部署,但遇到容器间Redis连接失败的问题。本地直接运行(uvicorn启动API、Celery Worker独立进程、Redis实例)时完全正常,容器内却无法建立连接。
错误信息
使用docker-compose启动Worker时,出现如下错误:
worker | TypeError: Channel._connparams..Connection.disconnect() takes 1 positional argument but 2 were given
相关配置
docker-compose.yml
services: app: build: context: app container_name: app working_dir: /code command: pipenv run uvicorn src.app:app --host 0.0.0.0 --port 8000 --reload volumes: - "./app:/code/" ports: - "8000:8000" depends_on: - redis links: - redis networks: - local worker: build: context: app container_name: worker command: pipenv run celery -A src.worker.celery worker --loglevel=info volumes: - "./app:/code/" depends_on: - redis links: - redis networks: - local redis: container_name: redis hostname: redis image: redis:7.0.9-alpine networks: - local networks: local: name: local
Celery Worker配置
celery = Celery(__name__) celery.conf.broker_url = "redis://redis:6379" celery.conf.result_backend = "redis://redis:6379"
额外测试
我在其他容器中运行以下简单的Redis连接测试代码,结果仅出现超时:
from redis import Redis redis_hostname = "redis" r = Redis(redis_hostname, socket_connect_timeout=1) r.ping()
请问我的配置哪里可能存在问题?
内容的提问来源于stack exchange,提问作者Radek_K
相关产品推荐
相关产品推荐

