3.3 KiB
🧹 Снять мёртвый 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— сам файл;Dockerfile—COPY 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 из окружения всё-таки нужно, это
отдельное решение с ценой, и принимают его разведкой, а не чисткой.