Как настроить команду запуска для веб-приложения flask azure - PullRequest
0 голосов
/ 08 января 2020

Я создал простое flask веб-приложение и смог опубликовать sh с помощью CI / CD из azure devops в azure веб-приложении. Конвейеры работают, за исключением запуска моего приложения.

Если я посмотрю на файлы журнала в веб-приложении, то получится -

logfile default_ docker .log:

    2020-01-08T13:04:17.017575225Z Documentation: http://aka.ms/webapp-linux
    2020-01-08T13:04:17.017579025Z Python 3.7.5
    2020-01-08T13:04:17.017582725Z Note: Any data outside '/home' is not persisted
    2020-01-08T13:04:17.093756525Z Starting OpenBSD Secure Shell server: sshd.
    2020-01-08T13:04:17.109540649Z Site's appCommandLine: gunicorn --bind = 0.0.0.0 --timeout 600 app: application
    2020-01-08T13:04:17.110379356Z Launching oryx with: -appPath /home/site/wwwroot -output /opt/startup/startup.sh -virtualEnvName antenv -defaultApp /opt/defaultsite -bindPort 8000 -userStartupCommand 'gunicorn --bind = 0.0.0.0 --timeout 600 app: application'
    2020-01-08T13:04:17.114336587Z Oryx Version: 0.2.20191105.2, Commit: 67e159d71419415435cb5d10c05a0f0758ee8809, ReleaseTagName: 20191105.2
    2020-01-08T13:04:17.116548105Z Found build manifest file at '/home/site/wwwroot/oryx-manifest.toml'. Deserializing it...
    2020-01-08T13:04:17.118951024Z Build Operation ID: |DGaRVt5jG5c=.2a144509_
    2020-01-08T13:04:17.554659456Z Writing output script to '/opt/startup/startup.sh'
    2020-01-08T13:04:17.784203265Z Found virtual environment .tar.gz archive.
    2020-01-08T13:04:17.784884970Z Removing existing virtual environment directory /antenv...
    2020-01-08T13:04:17.788272497Z Extracting to directory /antenv...
    2020-01-08T13:04:32.810295030Z Using packages from virtual environment antenv located at /antenv.
    2020-01-08T13:04:32.817794689Z Updated PYTHONPATH to ':/antenv/lib/python3.7/site-packages'
    2020-01-08T13:04:36.780635398Z usage: gunicorn [OPTIONS] [APP_MODULE]
    2020-01-08T13:04:36.780670499Z gunicorn: error: unrecognized arguments: app: application

мой простой вид дерева приложений выглядит следующим образом -

    test_app/
      venv/
      application/
        templates/
        __init__.py
        routes.py
        errors.py
        models.py
        forms.py
      app.py

я пробовал разные команды запуска в azure портале "общие настройки", но без решения

gunicorn --bind=0.0.0.0 --timeout 600  app:application

РЕДАКТИРОВАТЬ: добавлены app.py и init .py

app.py:

from application import app, db
from application.models import User, Post

@app.shell_context_processor
def make_shell_context():
    return {'db': db, 'User': User, 'Post': Post, 'Classrooms' : Classrooms, 'ClassSession' : ClassSession, 'Teacher' : Teacher}

init .py

from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_login import LoginManager
from logging.handlers import RotatingFileHandler
import os
from flask_bootstrap import Bootstrap
import logging

app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
login = LoginManager(app)
login.login_view = 'login'
bootstrap = Bootstrap(app)

from application import routes, models, errors

if __name__ == '__main__':
    # * --- DEBUG MODE: --- *
    app.run(host='127.0.0.1', port=5000, debug=True)

Кто-нибудь может указать мне направление, где я могу решить эту глупую проблему. спасибо !!

1 Ответ

0 голосов
/ 08 января 2020

Команда gunicorn на самом деле не указывает на объект WSGI app. Попробуйте вместо этого:

gunicorn --bind=0.0.0.0 --timeout 600  application:app
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...