Docker compose 芹菜工作者服务忽略代理url
我试图在我的django应用程序中使用芹菜,redis作为代理 在我的设置文件中,我设置了Docker compose 芹菜工作者服务忽略代理url,docker-compose,celery,Docker Compose,Celery,我试图在我的django应用程序中使用芹菜,redis作为代理 在我的设置文件中,我设置了cellery\u BROKER\u URL='1!'redis://redis:6379“和芹菜\u结果\u”redis://redis:6379“ 我的docker compose文件如下所示 web: build: context: ./web/ dockerfile: Dockerfile image: &web web env_file:
cellery\u BROKER\u URL='1!'redis://redis:6379“
和芹菜\u结果\u”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
作为代理
请有人帮我解释一下我做错了什么。我自己把它修好了
我们需要替换设置文件中的芹菜\u代理\u URL,如下所示
# Celery
CELERY_BROKER_URL = 'redis://broker/0'
#.... other services here
broker:
image: redis:alpine
expose:
- "6379"
celery:
build: ./myapp
command: celery -A myapp worker -l info
env_file:
- .env
volumes:
- ./myapp:/opt/myapp
depends_on:
- broker
- db
上面,代理引用docker-compose.yml中的服务名称
早些时候是这样的
CELERY_BROKER_URL = 'redis://localhost:6379/0'
我的docker-compose.yml文件如下
# Celery
CELERY_BROKER_URL = 'redis://broker/0'
#.... other services here
broker:
image: redis:alpine
expose:
- "6379"
celery:
build: ./myapp
command: celery -A myapp worker -l info
env_file:
- .env
volumes:
- ./myapp:/opt/myapp
depends_on:
- broker
- db
到目前为止有什么解决办法吗?我也遇到了同样的问题。@TaranjeetSingh我最终使用
rabbitmq
作为代理,redis
作为缓存服务