Comment se connecter à un Redis conteneur à l'aide de Docker Composer?

Ce docker-compose.yml semble fonctionner OK:

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

Commande:

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

L'Application Web s'attend à une REDIS_URL config. Web App Dockerfile:

ENV REDIS_URL redis:6379

Il semble que l'Application Web ne peut pas se connecter à le Redis:

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

Alors, qu'est-ce que le Redis URL de l'Application Web?

Ai-je besoin d'exposer le Redis port (6379)?

EDIT:

Grâce à @Andy Shinn, je vois le redis url doit être redis://6379.
Maintenant, je reçois Errno::EINVAL - Invalid argument - connect(2) for 0.0.24.235:6379. Cela peut avoir à faire avec le Redis v 3.2.8. Je vais essayer une autre version et voir si cela fonctionne.

EDIT #2:

3.2.8 fonctionne très bien avec l'app sur ma machine locale, de sorte que n'est pas la question.

Est redis cours d'exécution à ce point? Qu'advient-il si vous commencez à eux tous, puis redémarrez l' web après un peu -> de cette façon, vous savez que redis a été commencé.
Cette message d'erreur indique que le web service tente de se connecter à redis à l'adresse IP locale (127.0.0.1) et non pas la REDIS_URL qui devrait être le redis nom DNS à partir du lien. Ce type d'application est cela? Il est conçu pour utiliser le REDIS_URL? Il serait utile de publier un peu plus à propos de l'application (Dockerfile, comment il utilise le REDIS_URL, etc).
Oui, il est configuré pour utiliser le REDIS_URL. C'est un Sinatra app. D'autres configs de travail, et la production a un REDIS_URL.
Ne semble pas être un problème de synchronisation. Redis commence avant l'application web.
Est 0.0.24.235 la propriété intellectuelle qu'elle tente d'atteindre, maintenant, ou un copier/coller de l'erreur?

OriginalL'auteur B Seven | 2017-02-21