[2026-09-26] eagle: personal/plans/balda-mm-phase4-agents.md personal/tech/macos-docker-virtiofs-mount-limits.md
This commit is contained in:
1 parent
1eecc3011e
commit
5163c1c251
2 files changed
+149
-247
No files matched your search
@@ -208,6 +208,39 @@ docker buildx build --builder arm64builder --platform linux/arm64 \
|
||||
`docker-compose up` (это формат swarm). Лимит создаёт ложное ощущение защиты —
|
||||
что-то ограничивать нужно иначе (cgroups напрямую или `mem_limit`, зависят от версии).
|
||||
|
||||
### Проверено 2026-09-26 (сборка `balda-executor`)
|
||||
|
||||
Дополнения по факту сборки Фазы 4:
|
||||
|
||||
| Факт | Значение |
|
||||
|---|---|
|
||||
| Сборка образа | `docker buildx build --builder arm64builder --platform linux/arm64 --provenance=false --load -t balda-executor:0.1.0 .` — прошла, ~1 мин |
|
||||
| `compose.override.yaml` при `mounts: []` | должен существовать обязательно: compose подхватывает его автоматически, а без файла `up` падает на монтировании |
|
||||
| Имя каталога в выводе | `docker-compose` пишет путь через **нижний регистр** (`/Users/admin/docker/...`) — macOS ФС регистронезависима, для человека разницы нет |
|
||||
| Пересоздание контейнера | `docker-compose up -d` после правки манифеста: `Recreate` → `Started`, 2-3 сек, `--privileged` не нужен |
|
||||
| Отвязка проекта | убрать запись из манифеста → `render-mounts.py` → `up -d`. Файлы на хосте целы (проверено: `ls` на хосте после отвязки) |
|
||||
| Hardlink в тот же том | `ln -F` даёт `links=2` и **одинаковый inode** — проверено через `stat -f "%l %i"` |
|
||||
| Hardlink на каталог | API возвращает 400 до вызова `ln` (проверка `is_dir()`), ядро тоже откажет |
|
||||
|
||||
### Питфолл: `psutil` отсутствует в venv Eagle Dashboard
|
||||
|
||||
`process/terminate`-операции процесса Hermes (`process kill`) падают с
|
||||
`No module named 'psutil'`. Из-за этого supervisor **не может трекать мост по PID**,
|
||||
и для сервиса моста выбран health `type: http`, а не `type: process` —
|
||||
иначе карточка в дашборде всегда показывает «down», хотя сервис жив.
|
||||
|
||||
### Проверка, что сервис под launchd действительно автозапускается
|
||||
|
||||
```bash
|
||||
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.agents.bridge.plist
|
||||
launchctl list | grep agents.bridge # pid + last exit code
|
||||
curl -s http://127.0.0.1:8790/healthz # сервис отвечает
|
||||
```
|
||||
|
||||
`KeepAlive: true` + `RunAtLoad: true` в plist → сервис переживает падение и перезагрузку.
|
||||
Требовать `PATH` в `EnvironmentVariables` обязательно: под launchd PATH минимальный,
|
||||
и `/opt/homebrew/bin/docker` иначе не находится.
|
||||
|
||||
---
|
||||
|
||||
## Связанные заметки
|
||||
|
||||
Reference in new issue
Block a user