Почему я не могу получить доступ к своему mongodb, запущенному в док-контейнере в веб-приложениях Azure? - PullRequest
0 голосов
/ 16 июня 2019

Я хочу запустить образ докера mongodb из dockerhub, например mongo:3.6 или mongo:4.1 в веб-приложении Azure, но не могу получить к нему доступ извне.

Согласно журналам Azure, контейнер докера запускается нормально, и в журналах говорится:

docker run -d -p 29794:27017 --name mytestapp -e WEBSITE_SITE_NAME=mytestapp -e WEBSITE_AUTH_ENABLED=False -e PORT=27017 -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=mytestappurl -e WEBSITE_INSTANCE_ID=xxx -e HTTP_LOGGING_ENABLED=1 mongo:4.1

2019-06-15 19:42:49.831 INFO  - Container mytestapp for site mytestapp initialized successfully and is ready to serve requests.

Насколько я понял до сих пор Служба веб-приложений Azure поддерживает только порты 80 и 443 для входящего трафика и отображает внутренний порт (в случае mongodb: 27017) на порт 80 или 443, в зависимости от SSL или нет.

Когда я получаю доступ к своему веб-приложению через браузер и порт 80, я получаю сообщение

It looks like you are trying to access MongoDB over HTTP on the native driver port.

, который говорит, что служба каким-то образом доступна и ожидает запросов на порт 80, но когда я пытаюсь подключиться через mongo, например:

mongo -host mytestappurl -port "80"  -username "root" -passwort "myrootpw" --verbose

Я получаю

creating new connection to:mytestappurl:80
D NETWORK  [js] connected to server to:mytestappurl:80
I NETWORK  [js] recv(): message msgLen 1347703880 is invalid. Min 16 Max: 48000000

и так далее. Я также попытался установить пару ключ / значение WEBSITES_PORT = 27017 в настройках приложения Azure, но безуспешно. Та же самая настройка работает локально, и я могу получить доступ к mongodb, как и ожидалось.

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