приложение собрано каркасом и вшито в бинарник
- заведён каталог web/ — Vue 3, роутер пятой версии, сборка Vite; собранное вшивается через go:embed и раздаётся корневым маршрутом: разметка на неизвестном пути вне корней сервиса, отказ контракта внутри корня - перечень корней сервиса стал единой точкой и порождает регистрацию маршрутов, а не описывает её; журнал раздачи пишет исход и длину пути, но не сам путь - шаг front зовёт Node контейнером docker — Biome, юнит-тесты Vue и сборка входят в гейт, а в Dockerfile появилась ступень приложения
This commit is contained in:
+21
@@ -1,3 +1,20 @@
|
||||
# Front build stage
|
||||
#
|
||||
# Приложение собирается до бинарника: вшивание требует готового каталога.
|
||||
# Имя этого образа — единственное; шаг набора проверок берёт его отсюда же,
|
||||
# чтобы версия сборочного окружения не жила вторым числом в Taskfile.yml.
|
||||
FROM docker.io/library/node:24-alpine AS front-build
|
||||
|
||||
WORKDIR /web
|
||||
|
||||
# Зависимости ставятся из файла замка командой, которая его не правит:
|
||||
# иначе собранное в образе перестаёт совпадать с собранным в наборе проверок.
|
||||
COPY web/package.json web/package-lock.json ./
|
||||
RUN npm ci
|
||||
|
||||
COPY web/ ./
|
||||
RUN npm run build
|
||||
|
||||
# Build stage
|
||||
FROM docker.io/library/golang:1.26-alpine AS build-env
|
||||
|
||||
@@ -16,6 +33,10 @@ RUN go mod download
|
||||
# Copy source code
|
||||
COPY . .
|
||||
|
||||
# Собранное приложение приезжает ступенью выше: в дереве сборки его нет,
|
||||
# а вшивание без него отдаёт бинарник, который отвечает «приложение не собрано».
|
||||
COPY --from=front-build /web/embed/dist ./web/embed/dist
|
||||
|
||||
# Build the application
|
||||
RUN CGO_ENABLED=0 go build -o transcriber .
|
||||
|
||||
|
||||
Reference in New Issue
Block a user