对此感到很沮丧,几天来一直试图让它发挥作用。我请求帮助。这是一个包含 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
提交
取消