Работа в контейнерах¶
English · Русский
Контейнеры — отдельный способ запуска CLI/MCP worker. Для локального Python обычный путь — PyPI. Образы 1.6.0 опубликованы с проверяемыми digest/signature.
| Образ GHCR, префикс ghcr.io/wa-pis/ | Entrypoint | Возможности |
|---|---|---|
| agent-paranoid-android-cli | test-data-agent | Core CSV/JSON |
| agent-paranoid-android-generator-mcp | test-data-agent-mcp-generator | Core + MCP |
| agent-paranoid-android-trino-mcp | test-data-agent-mcp-trino | Core + MCP + Trino/SQLGlot |
Выберите tag 1.6.0, затем разрешите и проверьте immutable digest. Latest, 1 и 1.6 — mutable aliases. Публикуются linux/amd64 и linux/arm64; PyArrow не входит, для Parquet используйте Python extra.
Локальная сборка¶
Из корня checkout можно собрать только нужный target; Docker-выполнение здесь не проверялось:
docker build --target cli -t agent-paranoid-android:cli .
docker build --target generator-mcp -t agent-paranoid-android:generator-mcp .
docker build --target trino-mcp -t agent-paranoid-android:trino-mcp .
Compose использует non-root UID/GID (по умолчанию 65532), read-only root, dropped capabilities, no-new-privileges, конечные CPU/memory/process/tmp limits и не публикует ports. Writable workspace/audit mounts и отдельные owner-only secret files готовятся администратором. CONTAINER_UID/GID не могут быть нулевыми. Не коммитьте workspace, audit и secrets.
Generator получает /workspace и /audit без network. Он подходит для synthetic/local-file работы и не может молча получить DB capture access. Trino worker имеет outbound network, узкие HTTPS allowlists и read-only роль; generator workspace ему не монтируется.
MCP client запускает docker compose run --rm -T generator-mcp через stdio. Это не HTTP endpoint. Deadline TEST_DATA_AGENT_MCP_MAX_INVOCATION_SECONDS по умолчанию 120 секунд; остальные budgets остаются независимыми.
Audit и проверка образа¶
У workers разные ключи и audit mounts. Key file передаётся через /run/secrets, не image metadata или открытый client config. Перед rotation остановите соответствующего writer.
Перед запуском проверьте digest через Cosign, GitHub attestation и SBOM по точным командам оригинального руководства — English. Они требуют опубликованного digest, не placeholder. Health проверяет только локальные dependencies, non-root, workspace и configuration; он не соединяется с Trino и не читает набор.