docs(CLAUDE.md): для сборки контрактов на ARM использовать dicoop/blockchain_v5.1.1:dev
build-all.sh / build.sh хардкодят dicoop/blockchain:latest (amd64-only) — на ARM падают «exec format error». Multi-arch образ dicoop/blockchain_v5.1.1:dev имеет нативный arm64 manifest; команда для marketplace в одну строку зафиксирована в новой секции «Сборка контрактов на ARM-машине». Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -62,6 +62,30 @@ Workflow:
|
||||
|
||||
**Анти-паттерн:** worktree от `feat/1-2-...`, потом от `feat/1-3-...`, и каждый PR в `marketplace2`. Цепочка branches правильная (изоляция), но цепочка PR — нет. Кейс Эпика 1 Стола заказов 2026-05-14: 11 PR `#370-#380` подряд от `marketplace2`, каждый +N stories назад. Пользователь дошёл до review #372 и обнаружил дубли. Закрыл #372-#379, оставил только #380.
|
||||
|
||||
## Сборка контрактов на ARM-машине
|
||||
|
||||
Скрипты `components/contracts/build-all.sh` и `build.sh` хардкодят образ
|
||||
`dicoop/blockchain:latest`, который опубликован **только под `linux/amd64`** —
|
||||
на ARM (Raspberry Pi 5, Apple Silicon без qemu-binfmt и пр.) `docker run` падает
|
||||
с `exec /bin/bash: exec format error` сразу после старта контейнера.
|
||||
|
||||
**Для ARM использовать multi-arch образ `dicoop/blockchain_v5.1.1:dev`** —
|
||||
у него тег `dev` указывает на manifest list с нативными `dev-arm64` и
|
||||
`dev-amd64` под капотом. Запуск:
|
||||
|
||||
```bash
|
||||
cd components/contracts
|
||||
rm -rf build && mkdir build
|
||||
docker run --rm --name cdt \
|
||||
--volume "$(pwd)/:/project" \
|
||||
-w /project/build \
|
||||
dicoop/blockchain_v5.1.1:dev \
|
||||
/bin/bash -c "cmake -DBUILD_TARGET='marketplace' -DTEST_TARGET= -DVERBOSE=ON -DBUILD_TESTS=OFF -DIS_TESTNET=OFF .. && make -j2"
|
||||
```
|
||||
|
||||
Замена образа в build-скриптах на ARM — отдельный фикс (этот файл документирует
|
||||
рабочий обход, пока скрипты не перевели на multi-arch манифест глобально).
|
||||
|
||||
## Локальные тесты
|
||||
|
||||
**Не запускать полный jest локально** ни в mono-ai-1, ни в mono-ai-4: живой dev-стек в docker (`nodeos`, `controller dev` nodemon, `parser dev`, `n8n`) вешает CPU/RAM и блокирует chain. Полный suite — задача CI после push'а PR.
|
||||
|
||||
Reference in New Issue
Block a user