Я пишу небольшое приложение на основе микросервисов, и в нем у меня есть экземпляр redis, который может использовать какой-либо рубиновый код/контейнеры для использования через Resque. В настоящее время в моем Docker композе я связывая таким образом:Правильный способ связывания redis с контейнерами-док-станциями синатра
redis:
image: redis:latest
ports:
- '6379:6379'
ruby_worker:
image: my_user/my_image:latest
links:
- redis:db
Это прекрасно работает (я только назвать его: дб сейчас причиной того, что это пример, который я нашел при поиске ссылок).
В моем рубинового коде, я должен настроить мой Resque Redis сервер, как:
Resque.redis = ENV['DB_PORT_6379_TCP_ADDR'] + ':6379'
Но это просто не кажется правильным. Это зависит от этого точного имени redis, и если мне пришлось развернуть другой экземпляр redis (например, как я это делал во время игры с облаком докеров сегодня), он не находит сервер redis. Всего у меня есть 3 контейнера (до сих пор), подключающихся к этому redis для resque. Маленький синатральный фронт и 2 работника. Я не очень люблю рельсов и никогда не использовал resque до 3 дней назад. Так жаль, если я пропустил некоторые из основ.
Есть ли лучший способ подключиться к моему экземпляру redis в моем ruby-коде? Есть ли способ передать имя redis в моей докере? Сейчас мой спасательный-веб-контейнер сконфигурирован, как показано ниже, и это, кажется, работает нормально:
resque:
image: ennexa/resque-web
links:
- redis:redisserver
ports:
- "5678:5678"
command: "-r redis://redisserver:6379"