亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 305 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號