Files
transcriber/tasks/items/pin-runtime-image-base.md
T
av d676df8a27 tasks: закрыта задача go-1-26-upgrade, заведён урожай ревью
- четыре задачи из находок ревью и заметки владельца: проверки shellcheck и
  hadolint с тестом скрипта сверки версий, закрепление рантайм-базы образа,
  коды выхода шагов гейта, настройка конвейера ревью
- INBOX разобран целиком и очищен
2026-08-12 14:26:07 +03:00

43 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🧹 Закрепить версию рантайм-базы образа
- **Тип:** chore
- **Категория:** Очередь
- **Зачем:** Финальный слой 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`. Это законный исход.