Я пытаюсь использовать Celery в своем приложении django с redis в качестве брокера.
В моем файле настроек я установил CELERY_BROKER_URL='redis://redis:6379'
и CELERY_RESULT_BACKEND='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
в качестве посредника
Пожалуйста, кто-нибудь поможет сбросить некоторыеподсвечивает то, что я делаю не так здесь.