У меня 2 хоста, веб-модуль (WU) и вычислительный модуль (CU). В WU у меня есть свой сайт. В CU у меня есть сервер Redis и приложение (C ++), которое выполняет некоторые вычисления.
Пользователь вводит входные данные на веб-сайт, а затем я хочу поставить задание из WU в очередь на сервер Redis по КС. Затем у меня есть рабочий на CU, который выполняет задачу.
Теперь я могу поставить задание из WU (вне любого изображения docker) в CU с терминала (используя python rq
модуль). Однако на моем веб-сайте изображение docker, и я не могу заставить его работать. Из образа docker я пытаюсь подключиться к 172.17.0.1:6370 (172.17.0.1 - это IP-адрес шлюза между образом и хостом docker). Я получаю сообщение об ошибке: в соединении отказано . Затем я подумал, что мне, возможно, придется сопоставить порты в моем docker -compose файле: 6739: 6739. Однако затем я получил сообщение об ошибке, что порт уже используется. И действительно, он используется службой stunnel4, которая позволяет мне ставить задания из WU в очередь на сервер redis на CU.
Должен ли я запускать службу stunnel4 в образе docker? И если да, то как я мог это сделать? Или мне следует решить мою проблему по-другому?
Структура сети
WU и CU - это 2 (виртуальные) машины. Мой сервер redis находится на CU, а не в контейнере docker. Я могу подключиться к серверу redis из WU в CU с помощью модуля python redis (но не из контейнера docker). Для этого мне пришлось настроить stunnel4.service
(redis-client на WU и redis-server на CU).