Dockerfile FLASK + NGINX

2 000 руб. за проект • электронные деньги
15 апреля 2019, 10:05 • 4 отклика • 50 просмотров
Нужно создать контейнер все в одном для продакшена на AWS - ECS. Контейнер это 1 dockerfile flask + nginx + uwsgi.
Примеры:
https://ianlondon.github.io/blog/deploy-flask-dock...
https://medium.com/@smirnov.am/running-flask-in-pr...


1.Приложение на flask + nginx + uwsgi.
- Создать эндпоинт `/health` который всегда отвечает http code == 200
  1. Запретить nginx логировать в stdout
  2. Запретить uwsgi логировать в /health в stdout

Настройки для uwsgi, у похожих сервисов.
## --lazy-apps ... VERY necessary. Let Flask app load per worker instead of load once than fork.
uwsgi -s /tmp/auspex.sock \
--lazy-apps \
--wsgi-file auspex.py \
--module uwsgi \
--callable app \
--chmod-socket=666 \
--drop-after-apps \
--master \
--log-master \
--processes 8 \`
--stats 0.0.0.0:9191 \
--harakiri 5 \
--threaded-logger \
--logger "trash file:/dev/null" \
--log-route "trash .+GET /health.+(HTTP/1.1 200).+"

# SEE --logger and --log-route

2. Обработать заголовок https://docs.aws.amazon.com/elasticloadbalancing/l...
И возвращать время затраченное на запрос.
Логгировать с помощью этой либы
app = Flask(__name__)
json_logging.ENABLE_JSON_LOGGING = True
json_logging.init(framework_name='flask')
json_logging.init_request_instrument(app)

Работа без предоплаты.

Пишите в telegramm @khigor777