Docker compose 芹菜工作者服务忽略代理url

Docker compose 芹菜工作者服务忽略代理url,docker-compose,celery,Docker Compose,Celery,我试图在我的django应用程序中使用芹菜,redis作为代理 在我的设置文件中,我设置了cellery\u BROKER\u URL='1!'redis://redis:6379“和芹菜\u结果\u”redis://redis:6379“ 我的docker compose文件如下所示 web: build: context: ./web/ dockerfile: Dockerfile image: &web web env_file:

我试图在我的django应用程序中使用芹菜,redis作为代理

在我的设置文件中,我设置了
cellery\u BROKER\u URL='1!'redis://redis:6379“
芹菜\u结果\u”redis://redis:6379“
我的
docker compose
文件如下所示

web: 
    build: 
      context: ./web/
      dockerfile: Dockerfile
    image: &web web
    env_file:
      - .env
    command: "gunicorn web.wsgi:application -w 2 -b :4000"
    volumes:
      - ./web/:/web
    expose:
      - "4000"
    depends_on:
      - db
      - redis
      - worker
      - beat

db:
    build:
      context: ./database/
      dockerfile: Dockerfile
    volumes:
      - data:/var/lib/postgresql/data
    env_file:
      - .env
    expose:
      - "5432"

redis:
    build:
      context: ./cache/
      dockerfile: Dockerfile
    expose:
      - "6379"

worker:
    build:
      context: ./web/
      dockerfile: Dockerfile
    image: *web
    command: "celery -A web worker -l debug"
    ports: []
    depends_on:
      - redis
      - db

beat:
    build:
      context: ./web/
      dockerfile: Dockerfile
    image: *web
    command: "celery -A web beat -l info"
    ports: []
    depends_on:
      - redis
      - db
当我运行
docker compose up
时,
beat
服务启动良好,但
worker
因错误而失败

消费者:无法连接到amqp://guest:**@127.0.0.1:5672/:[Errno 111]连接被拒绝

不知何故,
worker
服务试图使用
rabbitmq
作为代理

请有人帮我解释一下我做错了什么。

我自己把它修好了

我们需要替换设置文件中的芹菜\u代理\u URL,如下所示

# Celery
CELERY_BROKER_URL = 'redis://broker/0'
#.... other services here 
broker:
    image: redis:alpine
    expose: 
        - "6379"
celery:
    build: ./myapp
    command: celery -A myapp worker -l info
    env_file:
        - .env
    volumes:
        - ./myapp:/opt/myapp
    depends_on:
        - broker
        - db
上面,代理引用docker-compose.yml中的服务名称

早些时候是这样的

CELERY_BROKER_URL = 'redis://localhost:6379/0'
我的docker-compose.yml文件如下

# Celery
CELERY_BROKER_URL = 'redis://broker/0'
#.... other services here 
broker:
    image: redis:alpine
    expose: 
        - "6379"
celery:
    build: ./myapp
    command: celery -A myapp worker -l info
    env_file:
        - .env
    volumes:
        - ./myapp:/opt/myapp
    depends_on:
        - broker
        - db

到目前为止有什么解决办法吗?我也遇到了同样的问题。@TaranjeetSingh我最终使用
rabbitmq
作为代理,
redis
作为缓存服务