Невозможно получить доступ к веб-приложению, созданному Docker, в Azure

#azure #flask #redis #docker-compose

#azure #flask #redis #docker-compose

Вопрос:

Мое приложение успешно создано локально, запустите доступное наhttp://localhost:5000 но не тогда, когда оно развернуто в Azure:

 version: '3'
services:
  redis:
    image: redis:alpine
    ports:
      - "6379:6379"

  web:
    build: .
    image: myappregistry.azurecr.io/myapp:latest
    ports:
      - "5000:5000"
  

Его создание в Azure, похоже, тоже работает:

 
2019-03-30 13:25:51.864 INFO  - Starting multi-container app, configuration = 
version: '3'
services:
  redis:
    image: "redis:alpine"
    ports:
      - "6379:6379"

  web:
    build: .
    image: myappregistry.azurecr.io/myapp:latest
    ports:
      - "5000:5000"

2019-03-30 13:25:54.668 INFO  - Issuing docker pull redis:alpine
2019-03-30 13:25:57.223 INFO  - docker pull returned STDOUT>> alpine: Pulling from library/redis
Digest: sha256:a228f66132cd46a53fd818443c42458af5d6a3e1231df25184304b8e732e51c4
Status: Image is up to date for redis:alpine

2019-03-30 13:25:57.245 INFO  - Starting container for site
2019-03-30 13:25:57.247 INFO  - docker run -d -p 19446:6379 --name myapp003_redis_0 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=false -e WEBSITES_PORT=5000 -e WEBSITE_SITE_NAME=myapp003 -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_INSTANCE_ID=c04d15b1b0966eeeb73c65719c2b7ecac5f6223333efd04b1712f559b5660459 redis:alpine  

2019-03-30 13:25:57.249 INFO  - Logging is not enabled for this container.
Please use https://aka.ms/linux-diagnostics to enable logging to see container logs here.
2019-03-30 13:25:58.084 INFO  - Starting container for site
2019-03-30 13:25:58.086 INFO  - docker run -d -p 0:5000 --name myapp003_web_0 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=false -e WEBSITES_PORT=5000 -e WEBSITE_SITE_NAME=myapp003 -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_INSTANCE_ID=c04d15b1b0966eeeb73c65719c2b7ecac5f6223333efd04b1712f559b5660459 myappregistry.azurecr.io/myapp:latest  

2019-03-30 13:25:58.088 INFO  - Logging is not enabled for this container.
Please use https://aka.ms/linux-diagnostics to enable logging to see container logs here.
  

Однако доступ к нему наhttps://myapp.azurewebsites.net / сбой с сообщением «502 — Веб-сервер получил неверный ответ, действуя в качестве шлюза или прокси-сервера».

Обратите внимание, что в веб-приложении Azure «Настройки приложения» я установил значение

 WEBSITES_PORT 5000
  

согласно https://code.visualstudio.com/docs/python/tutorial-deploy-containers

Есть идеи, что могло пойти не так?

Ответ №1:

Я не эксперт по Azure, но, просматривая опубликованный вами журнал, многое изменилось по сравнению с docker-compose, который вы тестировали локально: — redis теперь отображается на 19446 вместо 6379 — контейнеры больше не запускаются в одной сети (при запуске с помощью docker-compose они находятся в одной сети, но разные команды запуска docker действуют по-разному)

Таким образом, ошибка, которую вы получаете, может быть вызвана недопониманием между контейнерами. Попробуйте загрузить только свое веб-приложение и получить доступ к статической странице. Если это сработает, вам следует пересмотреть способ подключения к контейнеру redis из вашего приложения.