Вот минималистичная настройка приложения Flask, работающего внутри контейнера Docker. Этот пример лучше всего подойдет для Mac или Linux. Docker лучше всего подходит для серверов Linux. Поэтому имеет смысл использовать его, если вы планируете развернуть свое приложение на машине Linux. Для начала скачайте Docker.
Docker нужен запущенный демон Docker для запуска и остановки контейнеров, поэтому убедитесь, что он работает на вашем хосте. Выполните команду docker ps (в которой перечислены контейнеры), чтобы проверить, не вызывает ли она ошибку; если это так, вам нужно будет исправить ее перед обработкой. Предположим, все работает нормально. А теперь посмотрите репо, которое я подготовил.
git clone https://github.com/avloss/nginx_flask.git
Вот минимальная настройка для использования Nginx с Flask внутри Docker. Чтобы создать образ локально и запустить его, выполните следующие команды:
cd nginx_flask docker build -t local/nginx_flask . docker run --rm -it -p 8080:80 -v `pwd`/flask_app:/flask_app local/nginx_flask
Команда Fist проинструктирует демон создать образ из предоставленного файла Dockerfile. Вторая команда запустит контейнер и откроет порт 8080 на хосте. Перейдите к h ttp: // localhost: 8080, чтобы отправить запрос вашему приложению Flask внутри Docker.
Обратите внимание, что эта опция
-v `pwd`/flask_app:/flask_app
монтирует каталог flask_app внутри докера, поэтому, если мы изменим app.py, он отразится в нашем приложении при обновлении страницы.
Используйте свой каталог вместо flask_app для запуска собственного приложения. Он будет работать, пока он содержит модуль app с переменной приложения с именем app (и без проблем с зависимостями).
docker run --rm -it -p 8080:80 -v $PATH:/flask_app local/nginx_flask