From ae229d13ca1cc795024a1f2992043a98a78c3f0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Fri, 21 Aug 2026 14:20:23 +0300 Subject: [PATCH] =?UTF-8?q?History:=20=D1=84=D0=B8=D0=BA=D1=81=20gunicorn?= =?UTF-8?q?=20site.app,=20v2.0.1,=20=D0=BD=D0=B0=D0=B1=D0=BB=D1=8E=D0=B4?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE=20=D0=BA=D0=BB=D0=B0?= =?UTF-8?q?=D1=81=D1=82=D0=B5=D1=80=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- History/2026-08-21-gunicorn-fix-v201.md | 37 +++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 History/2026-08-21-gunicorn-fix-v201.md diff --git a/History/2026-08-21-gunicorn-fix-v201.md b/History/2026-08-21-gunicorn-fix-v201.md new file mode 100644 index 0000000..34917a8 --- /dev/null +++ b/History/2026-08-21-gunicorn-fix-v201.md @@ -0,0 +1,37 @@ +# 2026-08-21 — LoadTest: фикс gunicorn (site.app → --chdir /app/site app:app), v2.0.1 + +_Дата: 2026-08-21. Ветка: master. Инстанс: http-12.containerk8s.dev.nubes.ru (503)._ + +## Симптом +Инстанс отдавал 503 на всех путях (ingress nginx отвечал, бэкенд недоступен). +Локальный прогон образа на ВМ показал падение gunicorn: +``` +ModuleNotFoundError: No module named 'site.app'; 'site' is not a package +``` + +## Причина +Папка `site/` в проекте конфликтует со **стандартным модулем Python `site.py`** +(автоматически импортируется интерпретатором при старте). `import site.app` всегда +резолвится в stdlib-`site` → ModuleNotFoundError → worker падает → под не Ready → 503. +На managed-Flask работало, потому что платформа запускала ФАЙЛ `python site/app.py`, +а не импорт пакета `site.app`. + +## Фикс +`Dockerfile` CMD: +``` +gunicorn --bind 0.0.0.0:5000 --chdir /app/site --timeout 300 --workers 1 app:app +``` +- `--chdir /app/site` + импорт `app:app` (без пути через `site`) — stdlib-`site` не мешает. +- Проверено на ВМ: `docker run naeel/loadtest:v2.0.1` → `/health` = `ok v2.0.0`, HTTP 200. + +## Образ +- `naeel/loadtest:v2.0.1` — digest `sha256:9ad5cd52...`, запушен в Docker Hub. +- В ЛК редеплой с путём `naeel/loadtest:v2.0.1` (новый тег — старый v2.0.0 мог кэшироваться зеркалом). + +## Кластеры (наблюдения 2026-08-21) +- `k8s-3-sandbox-nubes-ru` — НЕ запускается вообще (баги платформы: script returned exit code 1, + No such property: name for class: Script2, поды не работают). +- `k8s-4-sandbox-nubes-ru` — запустилось, но ТОЛЬКО с одной аннотацией: + `nginx.ingress.kubernetes.io/proxy-body-size: 1024m`. + Добавление других аннотаций (таймауты/request-buffering) → падение скрипта платформы + (поле `ingress_annotations` «поддерживает пока простые аннотации»).