Files
transcriber/tasks/items/drop-dead-entrypoint-script.md
T

3.3 KiB
Raw Blame History

🧹 Снять мёртвый docker/entrypoint.sh вместе с его следами в образе

  • Тип: chore
  • Категория: Очередь
  • Зачем: Скрипт копируется в образ, линтуется шагом гейта и переназначает uid/gid из окружения, но не выполняется ни разу: ENTRYPOINT закомментирован без записанной причины, а переназначение спорит с решением от 2026-08-22 о числовом USER 1000:1000
  • Теги: review-2026-08-23

Dockerfile копирует docker/entrypoint.sh в образ и делает его исполняемым, а строку ENTRYPOINT держит закомментированной — работу делает CMD. Скрипт поэтому не выполняется ни разу, но платится за него трижды: слоем образа, шагом shell гейта, который линтует его поимённо, и строкой ENV USER=transcriber, заведённой ради него.

Сам скрипт — перенос из чужого проекта: в его сообщении об ошибке названа Gitea. Он переназначает uid и gid из переменных USER, USER_UID, USER_GID, а этого проект уже не делает: решением от 2026-08-22 пользователь в образе назван числом, USER 1000:1000, и причина записана строками рядом.

Нашёл прогон ревью drop-dead-dotenv-loader 2026-08-23, урожаем.

Затрагивает

  • docker/entrypoint.sh — сам файл;
  • DockerfileCOPY docker/entrypoint.sh, RUN chmod 755, закомментированная строка ENTRYPOINT и ENV USER=transcriber;
  • Taskfile.yml, шаг shell — скрипт назван в аргументах shellcheck поимённо.

Критерии приёмки

  • Скрипта нет ни в дереве, ни в образе. Оракул: grep -rn "entrypoint" Dockerfile Taskfile.yml → пусто, файла docker/entrypoint.sh нет.
  • Шаг shell гейта зелёный и не ссылается на пропавший файл. Оракул: task shell → код 0; сегодня та же команда линтует два скрипта, после правки — один.
  • Образ собирается и поднимается. Оракул: task image собирается, а поднятый контейнер отвечает на /metrics и пишет файлы в смонтированный каталог от владельца 1000:1000.

Рамки

Числового USER 1000:1000 не касаться: он поставлен решением владельца 2026-08-22 и закрывает DL3066. Возврат ENTRYPOINT в строй — не эта задача: если выяснится, что переназначение uid и gid из окружения всё-таки нужно, это отдельное решение с ценой, и принимают его разведкой, а не чисткой.