M Dockerfile => Dockerfile +11 -7
@@ 2,20 2,24 @@
FROM node:20-alpine AS web-builder
-WORKDIR /web
-COPY web/package.json web/package-lock.json ./
-RUN npm ci
-COPY web/ ./
-RUN npm run build
+# Mirror the host repo layout inside /src so vite's relative
+# `outDir: '../internal/server/web/dist'` resolves to a stable, explicit
+# path (/src/internal/server/web/dist) — not to a path that "happens to
+# land at the container root" because of WORKDIR.
+WORKDIR /src
+COPY web/package.json web/package-lock.json web/
+RUN cd web && npm ci
+COPY web/ web/
+RUN cd web && npm run build
-FROM golang:1.25-alpine AS builder
+FROM golang:1.26-alpine AS builder
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY . .
-COPY --from=web-builder /internal/server/web/dist /src/internal/server/web/dist
+COPY --from=web-builder /src/internal/server/web/dist /src/internal/server/web/dist
RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o /out/lethe ./cmd/lethe
FROM gcr.io/distroless/static-debian12:nonroot
M go.mod => go.mod +1 -1
@@ 1,6 1,6 @@
module sourcecraft.dev/bigbes/lethe
-go 1.25.0
+go 1.26.0
require (
github.com/coreos/go-oidc/v3 v3.18.0