docker-compose.yml
Это, кажется, работает OK:Как подключиться к контейнеру Redis с помощью Docker Compose?
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
Веб-приложение ожидает REDIS_URL конфигурации. Web App Dockerfile:
ENV REDIS_URL redis:6379
кажется, что веб-приложение не может подключиться к Redis:
Redis::CannotConnectError - Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED):
Итак, что URL-адрес Redis для веб-приложения?
Нужно ли открывать порт Redis (6379)?
EDIT:
Благодаря @Andy Шинн, я вижу Redis гиперссылка должна быть redis://6379
.
Теперь я получаю Errno::EINVAL - Invalid argument - connect(2) for 0.0.24.235:6379
. Это может иметь отношение к Redis v 3.2.8. Я попробую другую версию и посмотрю, работает ли она.
EDIT # 2:
3.2.8 прекрасно работает с приложением на моей локальной машине, так что это не проблема.
Редис работает в этой точке? Что произойдет, если вы запустите их все, а затем перезапустите 'web' после бит -> таким образом, вы знаете, что' redis' был запущен. – Nanne
Эта ошибка говорит, что служба 'web' пытается подключиться к redis на локальном IP (127.0.0.1), а не' REDIS_URL', который должен быть DNS-именем «redis» из ссылки. Что это за приложение? Он предназначен для использования 'REDIS_URL'? Было бы полезно опубликовать немного больше о приложении ('Dockerfile', как он использует' REDIS_URL' и т. Д.). –
Да, он настроен на использование 'REDIS_URL'. Это приложение Sinatra. Другие конфигурации работают, а у продукта есть «REDIS_URL». –