当您使用docker-
compose时,您将不会
localhost用于容器间通信,而将使用容器的由compose分配的主机名。在这种情况下,您的redis容器的主机名是
redis。下面的顶级元素
services:是您的默认主机名。
因此,要使Celery连接到Redis,您应该尝试
redis://redis:6379/0。由于协议和服务名称相同,因此我将详细说明:如果您在docker-
compose中将redis服务命名为“ butter-pecan-redis”,则应使用
redis://butter-pecan-redis:6379/0。
另外,docker-
compose.dev.yml在公共网络上似乎没有Celery和红豆,这可能会导致它们彼此看不见。我相信他们需要共享至少一个公共网络才能解析各自的主机名。
docker-
compose中的网络在前几段中都有一个示例,其中包含docker-
compose.yml。



