Перейти к основному содержимому

ADR-0011: два режима container CI

  • Status: accepted
  • Date: 2026-08-31

Контекст

В pull request образ нужен локально для проверки Trivy. Docker exporter не может одновременно загрузить такой образ и экспортировать manifest list с SBOM и provenance. После изменения main образ уже нужно публиковать в GHCR со всеми данными цепочки поставки.

Решение

  • В pull request workflow использует load, не публикует образ и не создаёт SBOM и provenance.
  • Trivy проверяет локально загруженный образ и блокирует критические и высокие уязвимости.
  • После изменения main workflow публикует образ с SBOM и максимальным provenance.
  • Опубликованный образ получает GitHub attestation и keyless-подпись Cosign.
  • Репозиторий .github проверяет эти режимы отдельным regression-скриптом.

Последствия

PR не создаёт SBOM и provenance для временного образа, который никуда не публикуется. Защита опубликованных образов не ослабляется. Изменение общего container workflow проверяется в .github и затем smoke-тестом в репозитории сервиса.