# syntax=docker/dockerfile:1 FROM node:24-alpine AS ui-builder WORKDIR /src/ui COPY ui/package.json ui/package-lock.json ./ RUN npm ci COPY ui/ ./ RUN npm run generate FROM golang:1.27-alpine AS builder RUN apk add --no-cache ca-certificates git WORKDIR /src COPY server/go.mod server/go.sum ./server/ RUN cd server && go mod download COPY server/ ./server/ COPY --from=ui-builder /src/server/internal/static/dist ./server/internal/static/dist ARG VERSION=dev RUN cd server && CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \ -trimpath \ -ldflags="-s -w -X github.com/alvarorg14/openlicensd/server/internal/version.Version=${VERSION}" \ -o /out/openlicensd \ ./cmd/openlicensd FROM gcr.io/distroless/static-debian12:nonroot COPY --from=builder /out/openlicensd /openlicensd USER nonroot:nonroot EXPOSE 8080 ENTRYPOINT ["/openlicensd"]