#docker #nginx #docker-compose #mutagen
#docker #nginx #docker-compose #mutagen
Вопрос:
У меня есть mutagen, работающий в двух проектах. Проект A выполняется на порту 1025, а проект B выполняется на порту 1027. Когда я хочу подключиться из проекта A в проект B, я всегда получаю curl: (52) Пустой ответ от сервера. Ранее, когда я хотел это сделать, я устанавливал URL-адрес для проекта B как http://host.docker.internal:1027 .
Интересно то, что я могу подключиться к http://localhost:1027 из моего браузера, а также из Postman, но когда я запускаю curl http://localhost:1027 или скручиваться http://localhost:1025 , я получаю пустой ответ от сервера. Поскольку PHP использует curl внутренне, все вызовы заканчиваются одинаково. И когда я запускаю проект B с помощью классического docker-compose up, он работает без каких-либо проблем (включая curl). Для чего нужна альтернатива mutagen http://host.docker.internal или как я могу подключиться изнутри одного проекта к другому?
Я использую Docker для Mac (без поддержки compose), и вот путь пересылки из mutagen.yml
forward:
nginx:
source: "tcp:localhost:1025"
destination: "docker://project-a-mutagen:tcp:nginx:1025"
Проект B имеет ту же конфигурацию, но с портом 1027
Спасибо за помощь
Редактировать: мне удалось заставить его работать, удалив сеанс пересылки, но я все равно хотел бы знать, как заставить его работать с пересылкой.
Комментарии:
1. Вы упомянули, что используете docker-compose, поэтому для подключения к службе из другого вы должны использовать имя службы docker-compose, поскольку оно действует как имя хоста DNS для каждого контейнера. Пример
http://my-service1
,http://my-service2
2. Это правда, но в данном случае я пытаюсь подключиться между контейнерами в двух совершенно разных проектах. Например. оба имеют свой контейнер nginx и не используют одну и ту же сеть
3. Почему бы просто не создать общую оверлейную сеть и не подключить к ней оба проекта? Я считаю, что то, что вы пытаетесь сделать, противоречит изоляции, которую docker устанавливает по умолчанию.