- migrations-step-norm-and-tests, gate-steps-subject-guard и review-config-from-go-upgrade уехали в голову: слой проверок, которым верят все задачи ниже; - rollback-restores-wrong-session-duration встал рядом с соседом про откат, bot-api-only-through-bot-client — рядом с чисткой транспорта, pin-runtime-image-base — перед spa-skeleton, откуда начинаются пересборки; - pipeline-spec-purpose-drift закрыта реализованной, а docs-consistency-2026-08-13 переписана под пять оставшихся находок: шестую свело повышение раскладки.
3.6 KiB
🧹 Закрепить версию рантайм-базы образа
- Тип: chore
- Категория: Очередь — Встаёт прямо перед spa-skeleton: частые пересборки образа начинаются с приложением, и до него незакреплённая база ничего не ломает.
- Зачем: Финальный слой Dockerfile собирается на alpine:latest, а task image идёт с --pull, поэтому два образа из одного коммита с разницей в неделю несут разный ffmpeg — регрессия конвертации после такой пересборки выглядит как задачи в failed при пустом диффе репозитория, и откат на прежний коммит её не чинит.
Класс тот же, ради которого задача go-1-26-upgrade завела шаг сверки версий:
объявленное и собранное расходятся, а сверять некому. Разница в том, что там
расходились числа внутри репозитория, а здесь репозиторий вообще не называет
числа — версия рантайм-базы задана словом «последняя».
Цена названа условием, а не замером: сколько именно и как часто меняется
ffmpeg в alpine:latest, никто не мерил. Известно, что он в таблице отказов
docs/architecture.md стоит со столбцом «Отдаёт мусор»: «Выходной файл пуст,
отказ вылезет на распознавании».
Перечень мест, где объявлена версия Go, эта задача не расширяет: он закрыт
решением go-1-26-upgrade, и рантайм-база — другой предмет.
Затрагивает
- финальный слой
Dockerfile— тег базового образа; - раздел «Деплой» в
docs/architecture.md.
Критерии приёмки
- Репозиторий называет версию рантайм-базы числом, а не словом «последняя».
Оракул —
grepпоDockerfile: тег финального слоя содержит мажор и минор. - Два образа, собранные из одного коммита, несут один
ffmpeg. Оракул — собратьtask imageдважды с интервалом и сравнитьffmpeg -versionвнутри обоих. - Решение записано там, где его найдёт разбор отказа конвертации. Оракул —
раздел «Деплой»
docs/architecture.mdназывает закреплённую базу и причину. - Гейт зелёный целиком. Оракул —
task gate.
Рамки
Версию базы выбирает человек: перескок на минор новее может принести другой
ffmpeg ровно с тем же исходом, ради предотвращения которого задача и заведена.
Выкладку не запускаем.
Если решено оставить latest, задача кончается записью принятого остатка в
docs/architecture.md, а не правкой Dockerfile. Это законный исход.