Докерские контейнеры не взаимодействуют должным образом
У меня есть интересная проблема, которую я пытаюсь решить.
Мы пытаемся создать мультиконтейнерный микросервис, состоящий из основного API-контейнера dotnet и поискового контейнера sphinx. Контейнер sphinx строит свои индексы из сетевой базы данных SQL Server.
Я успешно проверил контейнеры отдельно:
- Из версии API.NET v4.5 я могу запросить контейнер sphinx и получить результаты.
- Используя контейнер API, указанный для службы sphinx, работающей на моей локальной машине, я также получаю результаты.
Интересно, когда я запускаю 2 контейнера с помощью docker-compose. Я вижу, что запрос поступает в контейнер sphinx, но результаты не возвращаются.
Поэтому я знаю, что отдельные компоненты работают правильно. И они определенно могут общаться друг с другом. Но по какой-то причине данные не возвращаются.
Я не уверен, что публикация dockerfiles или docker-compose будет полезна, но на всякий случай вот docker-compose.
version: '2'
services:
sphinx3:
build: sphinx/.
container_name: sphinx3
api:
build: api/.
container_name: api
ports:
- "52707:80"
depends_on:
- sphinx3
Версия Sphinx - 3.0.3-facc3fb. Образ Sphinx построен с использованием Ubuntu:16.04.
Образ API построен с использованием aspnetcore-build:2.0
Любые идеи будут великолепны.
1 ответ
Попробуйте использовать "псевдонимы", я мог общаться между контейнерами, используя там псевдонимы.
PS: я использую docker-compose версии 3, где вы должны указать сеть для хранения контейнеров.