# syntax=docker/dockerfile:1 FROM --platform=$BUILDPLATFORM node:22-alpine AS frontend WORKDIR /src/web COPY web/package.json web/package-lock.json ./ RUN npm ci COPY web/ ./ RUN npm run build FROM --platform=$BUILDPLATFORM golang:1.24-alpine AS build ARG TARGETOS ARG TARGETARCH WORKDIR /src COPY go.mod go.sum ./ RUN go mod download COPY . . COPY --from=frontend /src/web/dist ./web/dist RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -trimpath -ldflags="-s -w" -o /out/havenllo ./cmd/havenllo FROM gcr.io/distroless/static-debian12 USER 0 COPY --from=build /out/havenllo /havenllo EXPOSE 8080 ENTRYPOINT ["/havenllo"]