为了账号安全,请及时绑定邮箱和手机立即绑定

Docker 容器中的 Celery:错误/MainProcess 消费者:无法连接到 redis

Docker 容器中的 Celery:错误/MainProcess 消费者:无法连接到 redis

斯蒂芬大帝 2023-08-22 17:58:48
对此感到很沮丧,几天来一直试图让它发挥作用。我请求帮助。这是一个包含 Postgres、Celery 和 Docker 的 Django 项目。首先我尝试使用RabbitMQ,出现了与现在Redis相同的错误,然后我多次尝试后换成redis,错误仍然相同,所以我认为问题出在Celery上,而不是RabbitMQ/Redis上。Dockerfile:FROM python:3.8.5-alpineENV PYTHONUNBUFFERED 1RUN apk update \    # psycopg2 dependencies    && apk add --virtual build-deps gcc python3-dev musl-dev \    && apk add postgresql-dev \    # Pillow dependencies    && apk add jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev \    # Translation dependencies    && apk add gettext \    # CFFI dependencies    && apk add libffi-dev py-cffi \    && apk add --no-cache openssl-dev libffi-dev \    && apk add --no-cache --virtual .pynacl_deps build-base python3-dev libffi-devRUN mkdir /appWORKDIR /appCOPY requirements.txt /app/RUN pip install -r requirements.txtCOPY . /app/docker-compose.yml:version: '3'volumes:  local_postgres_data: {}services:  postgres:    image: postgres    environment:      - POSTGRES_DB=postgres      - POSTGRES_USER=postgres      - POSTGRES_PASSWORD=postgres    volumes:      - local_postgres_data:/var/lib/postgresql/data    env_file:      - ./.envs/.postgres  django: &django    build: .    command: python manage.py runserver 0.0.0.0:8000    volumes:      - .:/app/    ports:      - "8000:8000"    depends_on:      - postgres  redis:    image: redis:6.0.8  celeryworker:    <<: *django    image: pyrty_celeryworker    depends_on:      - redis      - postgres    ports: []    command: celery -A pyrty worker -l INFO  celerybeat:    <<: *django    image: pyrty_celerybeat    depends_on:      - redis      - postgres    ports: []    command: celery -A pyrty beat -l INFO
查看完整描述

1 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

尝试更新您的应用程序设置以使用 redis 主机名而redis不是127.0.0.1


# Celery conf

CELERY_BROKER_URL = 'redis://redis:6379/0'

CELERY_RESULT_BACKEND = 'redis://redis:6379/0'

参考:


每个容器现在可以查找主机名 web 或 db 并获取适当容器的 IP 地址。例如,Web 的应用程序代码可以连接到 URL postgres://db:5432 并开始使用 Postgres 数据库。

查看完整回答
反对 回复 2023-08-22
  • 1 回答
  • 0 关注
  • 236 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信