точки входа переехали в cmd/, заведена заглушка OIDC для локального входа

- main.go и journal_route_test.go переехали в cmd/transcriber без правок
  содержимого; образ собирает ./cmd/transcriber поимённо
- cmd/oidcstub отвечает на /authorize, /token и /userinfo, проверок не делает
  и слушает петлевой адрес: войти без Authelia стало чем
- ступень сборки приложения переехала на node:24 с alpine — musl ждёт ответа
  на AAAA, которого нет, и npm ci висел вместо отказа
This commit is contained in:
av
2026-08-15 20:15:57 +03:00
parent 63a13404df
commit 91138dd39a
19 changed files with 335 additions and 25 deletions
+12 -2
View File
@@ -3,7 +3,15 @@
# Приложение собирается до бинарника: вшивание требует готового каталога.
# Имя этого образа — единственное; шаг набора проверок берёт его отсюда же,
# чтобы версия сборочного окружения не жила вторым числом в Taskfile.yml.
FROM docker.io/library/node:24-alpine AS front-build
#
# Образ на glibc, а не на alpine, и разница здесь не в весе: musl шлёт запросы
# `A` и `AAAA` разом и ждёт **оба** ответа, а DNS-сервер, который на `AAAA`
# молчит, оставляет его без адреса вовсе — при живом `A`. `npm` на такой отказ
# уходит в повторы с нарастающей паузой на каждом пакете, и сборка не краснеет,
# а **висит**. Библиотека glibc довольствуется полученным `A` и собирает.
# Ступень сборочная: в готовый образ её слои не едут, и лишний вес остаётся
# ценой одной сборки, а не размером выкладки.
FROM docker.io/library/node:24 AS front-build
WORKDIR /web
@@ -38,7 +46,9 @@ COPY . .
COPY --from=front-build /web/embed/dist ./web/embed/dist
# Build the application
RUN CGO_ENABLED=0 go build -o transcriber .
# Собирается одна точка входа из cmd/, а не весь пакет: соседний cmd/oidcstub —
# подставной провайдер для локального запуска, и в образе ему делать нечего.
RUN CGO_ENABLED=0 go build -o transcriber ./cmd/transcriber
# ----------------
# Production stage