我尝试为我的FastAPI项目实现芹菜,使用Redis作为代理和后端结果。我成功地构建了这个应用程序。但是,当我发送请求时,它会引发Error -3 connecting to redis:6379. Temporary failure in name resolution。这是我的docker-compose.yaml文件内容。我错过了什么?
顺便问一下,Redis末尾的/0是什么?
version: '3.5'
services:
soar-core:
container_name: soar-core
build: .
stdin_open: true
tty: true
restart: on-failure
ports:
- 127.0.0.1:8000:8000
depends_on:
- mongo
- redis
volumes:
- .:/soar_core
networks:
- soar-network
mongo:
container_name: mongo
image: mongo
restart: always
ports:
- 127.0.0.1:27018:27017
volumes:
- ./data:/data/db
networks:
- soar-network
redis:
image: redis:7.0.5
worker:
build: .
command: pipenv run celery --app=soar_core.celery.app worker --loglevel=info
volumes:
- .:/soar_core
environment:
- CELERY_BROKER_URL=redis://redis:6379/0
- CELERY_RESULT_BACKEND=redis://redis:6379/0
depends_on:
- soar-core
- redis
dashboard:
build: .
command: pipenv run --app=soar_core.celery.app flower --port=5555 --broker=redis://redis:6379/0
ports:
- 5556:5555
environment:
- CELERY_BROKER_URL=redis://redis:6379/0
- CELERY_RESULT_BACKEND=redis://redis:6379/0
depends_on:
- soar-core
- redis
- worker
networks:
soar-network:
driver: bridge这是我如何配置芹菜。
from celery import Celery
app = Celery(
name="Celery-App",
broker="redis://redis:6379/0",
backend="redis://redis:6379/0",
)发布于 2022-11-09 11:17:27
您的两个服务有一个自定义的networks: [soar-network]块,但其余的没有。Compose 自动将这些放在它创建的default网络上。
使用default网络没有什么问题,我建议删除文件中的所有networks:块,以便每个容器都在该default网络上。
( redis://.../0指定数据库号。一个Redis服务器可以有多个密钥空间,但它们是数字标识的,而不是名称。)
https://stackoverflow.com/questions/74370778
复制相似问题