對此感到很沮喪,幾天來一直試圖讓它發揮作用。我請求幫助。這是一個包含 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 數據庫。
添加回答
舉報
0/150
提交
取消