Python запросы контейнера не разрешаются локально - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь сделать запрос от экземпляра контейнера python к конечной точке на сервере NodeJS, но мои запросы не разрешаются на localhost и перенаправляются на мой корпоративный прокси. (Docker обход прокси-сервера уже настроен на localhost и 127.0.0.0/8).

Docker настройка:

IMAGE                 COMMAND                       PORTS                                        NAMES
redis:alpine          "docker-entrypoint.s…"        0.0.0.0:6379->6379/tcp                       redis
pyserver              "flask run"                   0.0.0.0:5000->5000/tcp                       pyserver
nodeserver            "npm start"                   0.0.0.0:80->80/tcp, 0.0.0.0:8443->8443/tcp   nodejs_server
postgres:10           "docker-entrypoint.s…"        0.0.0.0:5432->5432/tcp                       database

Мой python сервер настроен с использованием Flask, и я установил маршрут (скажем, «/ views») с функцией, которая будет делать запрос к указанной конечной точке c на nodejs_server.

Например:

r.get("http://nodejs_server:80/endpoint")

, но при посещении этой конечной точки в браузере или также через CURL из контейнера pyserver (curl -X GET http://pyserver/views), контейнер отправляет исходящий запрос, а не разрешается на localhost: 80.

Все контейнеры находятся в одной сети, а обход прокси-сервера docker уже настроен. Pyserver не имеет проблем с подключением к контейнеру redis по имени хоста (redis.Redis (host = "redis", port = 6379)).

Я пробовал использовать библиотеки aiohttp и запросов, но оба не смогли разрешить nodejs_server на localhost. Я что-то делаю не так, или библиотеки python всегда будут делать запросы к внешним?

Сеть docker, в которой они находятся, является мостовой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...