перенести flask webapp из docker -compose в azure web app - PullRequest
0 голосов
/ 28 мая 2020

У меня есть работающее веб-приложение, которое без проблем работает с docker -compose. Файл docker compose выглядит так:

version: '3.5'

services:

  webapp:
    image: docker_webapp
    ports:
      - 8080:5000
    volumes:
      - ./cloud_storage:/home/app

    environment:
      - FLASK_APP=dashapp
      - FLASK_ENV=production
      - DATABASE_URL=sqlite:////home/app/db/app.db
      - FLASK_DEBUG=0
      - DATA_PATH=/home/app/data

точка входа. sh содержит следующие команды:

#!/bin/sh
echo 'starting app'
flask db upgrade
uwsgi /home/app/uwsgi_conf/uwsgi.ini

, а конфигурация файла uwsgi.ini следующая:

[uwsgi]
http = 0.0.0.0:5000
module = app:server
#master = true
processes = 2
threads = 4

На стороне azure моя конфигурация следующая:

#create web app
az webapp create --resource-group $ACI_PERS_RESOURCE_GROUP --plan $APP_SERVICE_PLAN_NAME --name $APP_NAME --deployment-container-image-name $REPO_ADDRESS/docker_webapp:latest

# configure webapp to access container registry
az webapp config container set --name $APP_NAME --resource-group $ACI_PERS_RESOURCE_GROUP --docker-custom-image-name $REPO_ADDRESS/docker_shapapp:latest --docker-registry-server-url https://$CONTAINER_REGISTRY_NAME.azurecr.io --docker-registry-server-user $CONTAINER_REGISTRY_USERNAME --docker-registry-server-password $CONTAINER_REGISTRY_PASSWORD

# set the envirormet variables
az webapp config appsettings set --resource-group $ACI_PERS_RESOURCE_GROUP --name $APP_NAME --settings WEBSITES_PORT=5000 FLASK_APP=dashapp FLASK_ENV=production DATABASE_URL="sqlite:////home/app/db/app.db" FLASK_DEBUG=0 DATA_PATH="/home/app/data"

#mount file storage that is a copy of the local folder cloud_storage
az webapp config storage-account add --resource-group $ACI_PERS_RESOURCE_GROUP --name $APP_NAME --custom-id appdata --storage-type AzureFiles --share-name $SHARE_NAME --account-name $ACI_PERS_STORAGE_ACCOUNT_NAME --access-key $ACCES_KEY --mount-path "/home/app"

все выглядит хорошо. Действительно, я получаю следующее сообщение журнала от azure:

Container xxxxxx_0_9500b0c7 for site xxxxxx initialized successfully and is ready to serve requests.

Но если я открываю веб-сайт в моем браузере, я получаю внутреннюю ошибку сервера с макетом, который не является одним из моего веб-приложения. Что я делаю не так? как я могу получить доступ к журналам docker или хотя бы прикрепить контейнер (служба s sh не работает)?

Спасибо за помощь

...