docs(runbook): bookva-es урезан до 256m (Portainer стек 37, доступ есть), gotcha 5 исправлена

This commit is contained in:
2026-08-28 08:47:34 +03:00
parent 3a0e930e59
commit 048baf588b

View File

@@ -27,8 +27,8 @@ process (mongod) score ~114`). Симптом-задача — «ozon fbs produc
- **mongo (БД sched):** `books-job-scheduler-mongo` = `172.20.0.5:27017`, image `mongo:4.2`,
БД `agendaDb` (sched-задачи: `sched_tasks`, `sched_schedules`, `sched_runs`). Source-of-truth compose:
`/usr/docker/books-job-scheduler/docker-compose.yml` (**files-based**, НЕ Portainer-kzntsv).
- **ES:** `elasticsearch` (`/usr/docker/elasticsearch/docker-compose.yml`, `ES_JAVA_OPTS=-Xmx256m`),
`bookva-es` (Portainer/hidden — см. gotchas, `ES_JAVA_OPTS=-Xmx512m`).
- **ES:** `elasticsearch` (стек 33, `/usr/docker/elasticsearch/docker-compose.yml`, `ES_JAVA_OPTS=-Xmx256m`),
`bookva-es` (**Portainer стек 37, endpoint 1**; `ES_JAVA_OPTS` урезан 512m→`-Xmx256m`).
- **CI-остатки:** `buildx_buildkit_builder-*` (`moby/buildkit:buildx-stable-1`), удалены.
## Диагностика (как понять, что это OOM)
@@ -60,7 +60,8 @@ docker rm -f buildx_buildkit_builder-1ba06752-bf56-4b50-88c5-ce1b48f44a4e0 build
```
### 3. Урезать ES heap (вторично; elasticsearch уже 256m)
`bookva-es``ES_JAVA_OPTS=-Xms256m -Xmx256m` (через его деплой; см. gotchas).
`bookva-es``ES_JAVA_OPTS=-Xms512m -Xmx512m``-Xms256m -Xmx256m`.
Сделано: Portainer PUT стека 37 (`PUT /api/stacks/37?endpointId=1` с реконструированным compose). Verify: `docker logs bookva-es | grep heap``heap size [256mb]`.
## Verify / smoke
@@ -80,7 +81,7 @@ docker rm -f buildx_buildkit_builder-1ba06752-bf56-4b50-88c5-ce1b48f44a4e0 build
2. **Управление books VDS — файловые compose** `/usr/docker/*/docker-compose.yml`, НЕ Portainer-kzntsv. `portainer.kzntsv.site` endpoints — только `primary`+`stostayer`, книг там нет. Свой Portainer на books VDS — без host-port (нестандартно), напрямую не доступен. **Канон kzntsv «всё через Portainer» на книги не распространяется.**
3. **`com.docker.compose.project.config_files=/data/compose/22`** (label) — старый путь Portainer; `/data/compose/*` на диске НЕ существует. Реальный источник — `/usr/docker/*/docker-compose.yml`.
4. **compose-файлы в CRLF** (`\r\n`) — python-патч учитывать line-ending (иначе needle не матчит).
5. **`bookva-es`** — deploy неоднозначен (нет локального compose, `/data/compose/37` нет; управляется скрытым механизмом) — править осторожно, только при понимании деплоя.
5. **`bookva-es`** — **Portainer стек 37 (endpoint 1)**. Доступ есть: `BOOKS_PORTAINER_URL` + `BOOKS_PORTAINER_API_KEY` из `pass books-vds/full-env`. НО `GET /api/stacks/:id` НЕ отдаёт `stackFileContent` (в этой версии Portainer), поэтому compose реконструируется из `docker inspect` и обновляется через `PUT` стека. Не менять вслепую без этих данных.
6. **mongo warning XFS** — предупреждение, не ошибка (данные на ext4).
7. **`command` массив** в compose: `command: ["mongod", "--wiredTigerCacheSizeGB", "0.25"]` — строку тоже можно, но список надёжнее.