учёт: закрыта задача drop-dead-dotenv-loader, заведена drop-dead-entrypoint-script
This commit is contained in:
@@ -1,37 +0,0 @@
|
||||
# 🧹 Снять мёртвый godotenv.Load() вместе с зависимостью
|
||||
|
||||
- **Тип:** chore
|
||||
- **Категория:** Очередь — Чистка старта сервиса идёт вместе с задачей о локальном запуске: обе трогают одну точку входа
|
||||
- **Зачем:** сервис на каждом старте печатает предупреждение, приглашающее завести .env, читать который некому: это вторая точка, где может завестись секрет, и путь к нарушению критического инварианта сервис подсказывает сам
|
||||
- **Теги:** review-2026-08-23
|
||||
|
||||
Настройки сервис берёт из файла конфига целиком, а переменных окружения не
|
||||
читает нигде. Вызов `godotenv.Load()` остался от прежней раскладки и на каждом
|
||||
старте печатает предупреждение, приглашающее завести `.env`, — то есть завести
|
||||
вторую точку, где может осесть секрет.
|
||||
|
||||
Нашёл прогон ревью `config-test-headers-login` 2026-08-23.
|
||||
|
||||
## Затрагивает
|
||||
|
||||
- `cmd/transcriber/main.go` — вызов `godotenv.Load()` и его импорт;
|
||||
- `go.mod` — зависимость `github.com/joho/godotenv`;
|
||||
- `.dockerignore` — строка `.env`.
|
||||
|
||||
## Критерии приёмки
|
||||
|
||||
- Переменных окружения не читает никто. **Оракул:**
|
||||
`grep -rn "os.Getenv\|os.LookupEnv" --include=*.go internal/ cmd/ | grep -v _test`
|
||||
→ пусто.
|
||||
- Зависимости в `go.mod` нет. **Оракул:** `grep godotenv go.mod go.sum` → пусто,
|
||||
`go build ./...` зелёный.
|
||||
- Предупреждения на старте нет. **Оракул:** прогон бинарника сегодня печатает
|
||||
`level=WARN msg="Warning: .env file not found, using system environment variables"`;
|
||||
после правки такой строки в выводе старта нет.
|
||||
|
||||
## Рамки
|
||||
|
||||
Если переменные окружения кому-то понадобятся, у них заводится свой читатель, и
|
||||
это другая задача. Строку `.env` в `.gitignore` уже добавило слияние прежней
|
||||
задачи — она
|
||||
остаётся.
|
||||
@@ -0,0 +1,45 @@
|
||||
# 🧹 Снять мёртвый 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 из окружения всё-таки нужно, это
|
||||
отдельное решение с ценой, и принимают его разведкой, а не чисткой.
|
||||
Reference in New Issue
Block a user