如何使用Docker Compose连接到Redis容器?

这个docker-compose.yml似乎工作正常:

 version: '3' services: web: image: web-app command: bundle exec rackup ports: - "9292:9292" links: - redis redis: image: redis 

命令:

 docker build -t web-app .; docker-compose up 

Web应用程序正在等待REDIS_URLconfiguration。 Web应用程序Dockerfile:

 ENV REDIS_URL redis:6379 

看起来Web应用程序无法连接到Redis:

 Redis::CannotConnectError - Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED): 

那么,Web App的Redis URL是什么?

我需要暴露Redis端口(6379)吗?

编辑:

感谢@Andy Shinn,我看到redisurl应该是redis://6379
现在我得到Errno::EINVAL - Invalid argument - connect(2) for 0.0.24.235:6379 。 这可能与Redis v 3.2.8有关。 我会尝试另一个版本,看看它是否工作。

编辑#2:

3.2.8在我的本地机器上正常工作,所以这不是问题。

问题是redis是“variables”,将被插入到Dockerfile中。

 ENV REDIS_URL redis:6379 

但是,Redis URL应该以字面 redis开头。

所以,解决方法是更新泊坞窗撰写:

 redis_db: image: redis:3.2.8 

所需的configuration是:

 REDIS_URL=redis://redis_db:6379 

感谢BMitch和Andy Shinn帮我解决这个问题。